JSONP跨域,报错Uncaught SyntaxError Unexpected token

 $.ajax({
            url: 'https://news-at.zhihu.com/api/4/news/'+id,
            type: "GET",
            dataType: "jsonp",
            data:"{}",
            success: function(res){
              console.log(res);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                          alert(XMLHttpRequest.status);
                          alert(XMLHttpRequest.readyState);
                          alert(textStatus);
                      },
        });

提供的接口压根就不是jsonp格式的。给你直接返回的就是json

使用jsonp返回的数据格式要相应的调整下,并非json格式

// jsonStr:json格式的数据
return  "jsonpCallback(" + jsonStr+ ");" ;

返回使用jsonp请求的数据格式大致应该是这样的:

jsonpCallback({
    "url": "1234",
    "name": "abcd"
})

如果您使用jsonp单单是为了跨域的话,推荐您使用跨域资源共享 CORS 来跨域,推荐您看下阮一峰大神的博文:

http://www.ruanyifeng.com/blog/2016/04/cors.html
坚持原创技术分享,您的支持将鼓励我继续创作!