/ / getJSON vs .open produziert zwei verschiedene Ergebnisse beim Aufruf von API - api, getjson

getJSON vs .open produziert zwei verschiedene Ergebnisse beim Aufruf von API - api, getjson

Versuchen zu verstehen, warum man arbeitet und anderedoesnn t. Wenn Benutzer auf den Namen klickt, wird ein neues Zitat angezeigt, aber nur unter .getJSON funktioniert das. Unter der .open-Methode wird ein Zitat angezeigt, aber ändert sich nicht nach dem Klicken auf den Namen. Warum ist das? Beide verwenden exakt die gleiche API-URL und den gleichen Schlüssel.

.getson-Methode

.open-Methode

MIT .OPEN-METHODE

var xhr=new XMLHttpRequest();

$(".name").on("click", function() {

responseObject = JSON.parse(xhr.responseText);
$(".quote1").html(responseObject.quote);
console.log(responseObject);

});

xhr.open("GET", "https://andruxnet-random-famous-quotes.p.mashape.com/", true);
xhr.setRequestHeader("X-Mashape-Key", "fjZoisqRfomshkDSNH1AZLpFCS6gp1yVxU8jsn3fPleq6TIPeF")
xhr.send(null);

MIT .getJSON-METHODE

$(".name").on("click", function(){
$.getJSON("https://andruxnet-random-famous-quotes.p.mashape.com/",{"mashape-key": "fjZoisqRfomshkDSNH1AZLpFCS6gp1yVxU8jsn3fPleq6TIPeF"}, function(json){

console.log("json response: ", json);
$(".quote1").html(json.quote);
});

});

Antworten:

1 für die Antwort № 1

Es sieht aus wie wenn ich benutze.Öffnen Ich sollte Onload mit anonymer Funktion verwenden, um jedes Mal, wenn ein Benutzer auf den Namen klickt, ein neues Angebot zu laden. Aber ich bin mir nicht sicher warum das so ist, wenn jemand das erklären könnte wäre das toll!

 $(".name").on("click", function() {

var xhr=new XMLHttpRequest();
xhr.onload=function(){


responseObject = JSON.parse(xhr.responseText);
$(".quote1").html(responseObject.quote);
console.log(responseObject);
};
xhr.open("GET", "https://andruxnet-random-famous-quotes.p.mashape.com/", true);
xhr.setRequestHeader("X-Mashape-Key", "fjZoisqRfomshkDSNH1AZLpFCS6gp1yVxU8jsn3fPleq6TIPeF")
xhr.send(null);
});