2017-10-28 181 views
3

如何使用jquery從「https://api.qwant.com/api/search/images?count=10&offset=1&q=cars」api獲取圖像url。我無法做到。波紋管我已經附上我的代碼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: "myJsonMethod", 
    success: function(json) { 
     $.parseJson(json) 
    }, 
    error: function(e) { 
     console.log(e); 
    } 
}); 

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

回答

4

您的要求不工作,因爲CORS,這是API服務器上啓用的。你需要一個代理服務器來解決這個問題。對於發展的目的,你可以使用一個免費的在線代理服務器,你的代碼簡化:

$.ajax({ 
    url:"<PROXY:SERVER>https://api.qwant.com/api/search/images?count=10&offset=1&q=cars", 
    success: function(json) { 
     // Do stuff with data 
    }, 
    error: function(e) { 
     console.log(e); 
    } 
}); 

舉個例子看看這個working fiddle

+0

你可以請告訴CORS? –

+0

因爲我可能不是最好的老師,所以我建議你看看這個不錯的解釋https://stackoverflow.com/a/35553666/5173530 –

1

試試這個

$.ajax({ 
    url:"https://api.qwant.com/api/search/images?count=10&offset=1&q=cars", 
    type:"GET", 
    crossDomain : true, 
    async: false, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    jsonpCallback: "myJsonMethod", 
    success: function(json) { 
     $.parseJson(json) 
    }, 
    error: function(e) { 
     console.log(e); 
    } 
}); 

這是CORS的事情,這樣你就可以服務器這一切了從Web服務器,例如HTTP服務器,我想一定像Firefox這樣的瀏覽器可以讓它在本地發生。

我相信,Chrome上有一些標誌可以讓它在本地工作。

乾杯

+0

我看到與該功能相同的錯誤,也是內容類型是發送數據到API,並沒有數據被髮送,但收到 – derloopkat