如何通过跨域获得API响应?请仔细阅读以下说明

时间:2015-07-17 05:23:19

标签: javascript jquery

我希望使用ajax / getjson方法从下面的URL获得响应。 http://randomvin.com/getAjax.php?qry=random&str=random&fake=false 但问题是javascript不允许我与上面的URL进行通信,因为这不会产生JSON。我试过dataType:'jsonp'但没有运气。它告诉我

  

SyntaxError:期望表达式,得到'<'

     

1FMZU84PXYZA75146

我知道为什么它会向我显示错误,因为响应不是在json中而是在HTML中!必须有另一种方式,请建议。提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用JSONP,您只能阅读JSON响应。您链接到的网页提供HTML响应,但不提供JSON响应。如果您有权访问该服务器,则可以将该响应修改为:

{"result": "1FMCU0GX0DUB94477"}

然后将其与JSONP一起使用:

$.getJSON('http://randomvin.com/getAjax.php?qry=random&str=random&fake=false', function (data) {
    console.log(data.result);
});

但是如果你想从另一个域读取HTML响应,那么唯一的方法是编写自己的服务器端脚本,该脚本向该URL发送GET请求并返回数据,并通过AJAX调用该服务器端脚本。 / p>