2016-05-21 13 views
2

Ist das ein Browser-Quirk, oder verwende ich falsch? Ich habe die api-Dokumente gelesen, konnte aber keine Informationen darüber finden, warum ich es nicht so verwenden könnte. Ich kann den Link kopieren und in meinen Browser einfügen und es wird jedes Mal ein anderes Zitat zurückgegeben.Warum kann ich keine Funktion mit get-Anforderung bei Klick aufrufen?

Gerade jetzt, wenn ich diese Funktion aufrufen, und es sich selbst wieder aufruft, wird es immer wieder das gleiche Zitat ausdrucken, anstatt ein neues Zitat zu erzeugen.

function apiCall() { 
    $.get('http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1', function(data) { 
    if (data[0].content.length > 100) { 
     apiCall(); 
    } 

    console.log(data[0].content); 
    }) 

} 
+0

ich den Cache zu leeren hatte, bevor ich ein anderes Angebot bekam. Wenn Sie nur die Seite aktualisieren, wird dieselbe zurückgegeben. – Tico

+0

Ich habe die Seite aktualisiert und konnte eine andere zurückgeben. –

Antwort

2

die Ajax-get-Methode Verwenden Sie Cache zu deaktivieren: -

$.ajax({ 
    url: "'http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1", 
    cache: false, 
    success: function(data){ 
    if (data[0].content.length > 100) { 
     apiCall(); 
    } 
    console.log(data[0].content); 
    } 
}); 
+0

Beat mich, nett :) – Tico

+0

Das funktioniert! Vielen Dank. Ich bin immer noch verwirrt darüber, warum ich die Seite aktualisieren und erfolgreich ein neues Angebot erhalten konnte, aber nicht, wenn ich die get-Funktion in meinem Code aufgerufen habe. –

+0

weil '$ .get'' $ .ajax' mit 'cache: true' verwendet. Das heißt, wenn derselbe Aufruf ausgeführt wird, wird der eigentliche Aufruf nicht ausgeführt und der Erfolg wird mit den zuvor zurückgegebenen Daten aufgerufen. bis du aktualisierst, was dann den ersten Anruf erneut macht. – BenG

Verwandte Themen