jquery 跨域 请求 json 请求数据成功,但控制台报错Uncaught SyntaxError: Unexpected token :

Jack_Ruin 发布于 2017/11/26 17:11
阅读 3K+
收藏 2

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

控制台死活都是报错:

Uncaught SyntaxError: Unexpected token :

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

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

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

加载中
1
c
cxxyjsj

把响应内容贴出来看下

0
Tuesday
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 ) return false;
  });
});
0
梦想岛
梦想岛

chrome最新版的控制台,返回json的接口要声明text/json。或者你eval一下返回数据看看

0
Kit_lee
Kit_lee

jsonp是要传递一个回调函数名称给服务端,如 :

dataType: "jsonp",  //使用jsonp
jsonp: "jsonpCallback", //callback函数名称

服务端返回的字符串则会是 jsonCallback({"a": "1", "b":"2"}) 这样的代码

然后你还需要在你客户端的页面上实现这一回调函数:

function jsonpCallback(json){
    console.debug('a='+json.a+', b='+json.b);
}

 

0
依然菜刀
依然菜刀

把响应内容贴出来看下

0
J
Jack_Ruin

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

把响应内容贴出来看下

返回的数据

0
J
Jack_Ruin

引用来自“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 ) return false;
  });
});

搜了很多,大概知道为什么了,看了这个帖子,跟我的解决方案一样,都是在服务端使用http请求获取数据后,再通过ajax请求数据

https://my.oschina.net/u/1187799/blog/296865

0
大河向东流啊
大河向东流啊

https://my.oschina.net/tp123/blog/1506646 希望 能给你帮助

J
Jack_Ruin
谢谢,不过我请求的api是别的服务器上的,目前我的解决方案是用ajax同源请求自己的服务然后通过后端模拟http请求获取数据
0
傻傻躺着
傻傻躺着

前后台改成这样 就可以了

返回顶部
顶部