Javascript:跨域Ajax请求问题:JSONP报告意外令牌<错误

时间:2016-12-17 08:50:00

标签: ajax cors jsonp

在我的应用程序中,我想将ajax请求发送到url(这是一个通用的html网页,就像在线文章一样),然后获取响应(这是页面的内容)并执行以下操作

但目前我被跨域请求问题阻止了,我知道这是一个老问题,我曾经遇到过同样的问题。

那时,我会JSONP方法来解决问题,但这次它对我没有用处:

    $.ajax({
    url: newurl, //the url will be like https://techcrunch.com/2016/12/16/google-maps-now-notes-if-a-location-is-wheelchair-accessible/ 
    type:'GET',
    dataType:'JSONP',
    success:function(data){
        console.log(data)
    }
})

但这次我遇到了错误消息"Uncaught SyntaxError: Unexpected token <"

所以上次我使用jsonp方法成功地从API获取JSON数据,但是这次消息,unexpected token <是否意味着html标签?如果我还想使用JSONP,如何解决这个问题?

我还尝试了CORS的第二种方法。所以我也尝试在ajax方法中设置所需的标题如下:

    $.ajax({
    url: newurl,
    type:'GET',
    dataType:'html',
    headers: {
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Headers":"X-Requested-With"
    },
    success:function(data){
        console.log(data)
    }
})

但似乎没有任何帮助。有任何想法吗?谢谢

编辑: 经过一番研究和调试,发现CORS方法必须需要服务器端的工作;和JSONP可以是一个解决方案但只适用于JSON格式数据,对于HTML代码,它可以&#39;工作。
正确的解决方案是YQL(雅虎查询语言),它可以支持html数据的这种交叉源提取。

0 个答案:

没有答案