2017-10-28 2 views
3

wie man Bild URL von "https://api.qwant.com/api/search/images?count=10&offset=1&q=cars" API mit jquery. Ich kann es nicht tun. brülle ich meinen CodeJQuery AJAX bekommen JSON Daten

<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> 

Antwort

4

Ihre Anfrage nicht funktioniert wegen CORS, die auf dem API-Server aktiviert ist. Sie benötigen einen Proxy-Server, um dies zu umgehen. Für Entwicklung Zwecke Sie einen kostenlosen Online-Proxy-Server verwenden konnten, vereinfacht der Code dann:

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

Als Beispiel diesen working fiddle überprüfen.

+0

können Sie bitte über CORS erzählen? –

+0

Da ich wahrscheinlich nicht der beste Lehrer bin, würde ich Ihnen raten, sich diese ziemlich gute Erklärung https://stackoverflow.com/a/35553666/5173530 anzusehen –

1

angebracht habe das Versuchen

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

Dies ist eine Sache CORS, so können Sie Server dies alles von einem Webserver auf, wie http-Server, und ich denke, bestimmen Browser wie Firefox erlauben dies lokal zu geschehen.

Es gibt einige Flags mit Chrome, die erlauben, dass es auch so lokal funktioniert, glaube ich.

Prost

+0

Ich sehe den gleichen Fehler mit dieser Funktion, auch Inhaltstyp ist für das Senden von Daten an die API, und es gibt keine Daten gesendet, aber empfangen – derloopkat