2017-10-28 67 views
0

当我在浏览器中输入url时,我得到一个json响应。但我可以用我的代码jQuery 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> 
+0

你可以尝试改变dataType到“json”? –

+0

你永远不会*希望在Ajax请求中使用'async:false'。这没有一个有效的用例。 – Tomalak

+0

JS函数$是否已准备就绪,并已完全加载运行时间?看起来不像我 – Zim84

回答

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); 
} 

另请参考: