跨域jQuery
我花了一天的时间来阅读上述主题,但我无法让这段代码正常工作。 有人能帮我做这项工作吗跨域jQuery,jquery,ajax,json,cross-domain,jsonp,Jquery,Ajax,Json,Cross Domain,Jsonp,我花了一天的时间来阅读上述主题,但我无法让这段代码正常工作。 有人能帮我做这项工作吗 $(document).ready(function(){ var url = "http://phisix-api.appspot.com/stocks/BDO.json?jsoncallback=?"; $.getJSON( url).done(function( data ) { alert('done'); // i have codes here to man
$(document).ready(function(){
var url = "http://phisix-api.appspot.com/stocks/BDO.json?jsoncallback=?";
$.getJSON( url).done(function( data ) {
alert('done'); // i have codes here to manipulate the return
}).error(function( data ) {
alert('error');
console.log(data);
});
});
(您可以测试url,它100%工作。但我的代码不是:()
提前感谢。因为您试图获得一个发送回调名称的jsonp响应,所以需要返回如下内容
mycallback({"stock":[
{"name":"Banco de Oro",
"price":{"currency":"PHP","amount":83.8},
"percent_change":0.24,
"volume":2100730,
"symbol":"BDO"}],
"as_of":"2014-03-17T15:46:00+08:00"})
否则它将是一个正常的JSON响应
因为您需要将JSONP封装在对类似示例的函数的调用中
使用类似这样的方法,一旦返回包装响应,它就会工作
$.ajax({
url: 'http://phisix-api.appspot.com/stocks/BDO.json?callback=?',
dataType: 'JSONP',
type: 'GET',
success: function (data) {
console.log(data);
}
});
看看这把小提琴,它向flick服务发出JSONP请求
(更新)使用jquery时不需要回答的最后一部分。只需将
callback=mycallback
替换为callback=?
jquery将为您定义回调。函数的哪一个?是的。如果您以这种方式定义函数并使用数据类型JSONP,jquery将永远不会调用success函数。因此,这样做没有必要需要创建函数并简单地为其添加一个函数吗?是的,假设服务读取“callback”url参数。如果mycallback改为硬编码到服务中,那么您需要使用jsonpcallback选项。您的服务不会返回JSONP。在它开始返回JSONP之前,您无能为力。