开发者社区> 问答> 正文

jquery 跨域 请求 json 请求数据成功,但控制台报错Uncaught ?400报错

最近使用jquery 跨域请求数据,遇到一个奇怪问题,试了好多方法,依然不能解决下面的问题:()

控制台死活都是报错:

Uncaught SyntaxError: Unexpected token :

请求方式(getJSON等都试了,报错一样):

$.ajax({
			type:"get",
			url:url,
			dataType:"jsonp",
			success: function (data) {
			var result = JSON.stringify(data);
                  console.log(result);
                    }
				});

请求的数据是正常返回的,可就是获取不到,:

展开
收起
爱吃鱼的程序员 2020-06-07 22:30:51 621 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    把响应内容贴出来看下

    $.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);}

     

    把响应内容贴出来看下

    引用来自“依然菜刀”的评论

    把响应内容贴出来看下

    引用来自“Tuesday”的评论

    $.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请求获取数据

    前后台改成这样就可以了

    2020-06-07 22:31:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTS控制台一本通 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载