web-dev-qa-db-fra.com

JQuery ajax obtenir des données json

comment obtenir l'URL de l'image depuis " https://api.qwant.com/api/search/images?count=10&offset=1&q=cars " api à l'aide de jQuery. je suis incapable de le faire. ci-dessous j'ai joint mon code

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

Votre demande ne fonctionne pas à cause de CORS, qui est activé sur le serveur d'API. Vous avez besoin d’un serveur proxy pour résoudre ce problème. Pour development vous pouvez utiliser un serveur proxy en ligne gratuit, votre code simplifie ensuite:

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

A titre d’exemple, consultez ce violon en marche .

5
Roby Rodriguez

Essaye ça

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

C’est un problème CORS, vous pouvez donc utiliser tout cela depuis un serveur Web, comme http-server, et je pense que certains navigateurs comme Firefox permettent que cela se produise localement.

Il existe certains indicateurs avec Chrome qui lui permettraient de fonctionner localement comme celui-ci également, je crois.

À votre santé

1
Nitin Daddikar