最近使用jquery 跨域请求数据,遇到一个奇怪问题,试了好多方法,依然不能解决下面的问题:()
控制台死活都是报错:
Uncaught SyntaxError: Unexpected token :
请求方式(getJSON等都试了,报错一样):
$.ajax({
type:"get",
url:url,
dataType:"jsonp",
success: function (data) {
var result = JSON.stringify(data);
console.log(result);
}
});
请求的数据是正常返回的,可就是获取不到,:
把响应内容贴出来看下
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",function(data){$.each(data.items,function(i,item){$("<img/>").attr("src",item.media.m).appendTo("#images");if(i==3)returnfalse;});});
chrome最新版的控制台,返回json的接口要声明text/json。或者你eval一下返回数据看看
jsonp是要传递一个回调函数名称给服务端,如:
dataType:"jsonp",//使用jsonpjsonp:"jsonpCallback",//callback函数名称
服务端返回的字符串则会是jsonCallback({"a":"1","b":"2"})这样的代码
然后你还需要在你客户端的页面上实现这一回调函数:
functionjsonpCallback(json){console.debug('a='+json.a+',b='+json.b);}
把响应内容贴出来看下
把响应内容贴出来看下
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",function(data){$.each(data.items,function(i,item){$("<img/>").attr("src",item.media.m).appendTo("#images");if(i==3)returnfalse;});});
https://my.oschina.net/tp123/blog/1506646 希望 能给你帮助
谢谢,不过我请求的api是别的服务器上的,目前我的解决方案是用ajax同源请求自己的服务然后通过后端模拟http请求获取数据前后台改成这样就可以了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。