jQuery ajax远程json无法正常工作

时间:2017-10-28 08:39:49

标签: jquery json ajax

当我在浏览器中输入网址时,我得到了一个json响应。但我无法使用我的代码访问响应

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$.ajax({
    url:"https://api.qwant.com/api/search/images?count=10&offset=1&q=cars",
    type:"GET",
    crossDomain : true,
    async: false,
    dataType: "jsonp",
    jsonpCallback: "getStatus",

    success: function(json) {
    },

    error: function(e) {
       console.log(e);
    }
});

function getStatus(response)
{
    console.log(response.status);
}
</script>

1 个答案:

答案 0 :(得分:0)

api.qwant返回JSON,而不是JSONP。它也受same-origin policy的限制。因此,由于浏览器的安全性,您通常会遇到通过跨域ajax请求访问数据的问题,除非您有一个CORS proxy代表您添加CORS标头并绕过同源策略。

顺便说一句,您可以使用CORS和JSONP支持的API尝试您的函数:

$.ajax({
    url:"https://jsonplaceholder.typicode.com/posts",
    type:"GET",
    jsonpCallback: "getStatus",
    dataType: "jsonp",

});
function getStatus(response)
{
    console.log(response);
}

还查看: