2017-10-28 58 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); 
} 

另請參考: