2017-08-07 29 views
1

Mit dieser API: http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1JavaScript: Wie "refresh" Daten von derselben URL?

Wie kann ich mit reinem JS Anfrage schreiben, die mir verschiedene Daten nach Schaltfläche Click-Ereignis herunterlädt?

Alles, was ich von diesem Code erhalten, ist das gleiche Angebot die ganze Zeit:

function getQuote (cb) { 
var xmlhttp = new XMLHttpRequest(); 
var quoteURL = "http://quotesondesign.com/wp-json/posts?filter[orderby]=rand" 
xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.status == 200 && this.readyState==4) { 
     cb(this.responseText); 
    } 
}; 
    xmlhttp.open("GET", quoteURL, true); 
    xmlhttp.send(); 
} 

document.querySelector('button').addEventListener("click", function() { 
    getQuote(function(quote) { 
     console.log(quote); 
    }); 
}) 

Ich versuchte xmlhttp.abort() und Sachen, aber es hat nicht zusammenarbeiten wollen. Vielen Dank im Voraus!

+0

Können Sie jQuery verwenden? –

+0

Ich will nicht. Ich meine, es ist in Ordnung, es würde funktionieren. Aber mein Ziel ist es, pures JS richtig zu lernen. Ich habe letztes Mal "app" gearbeitet, wusste aber nicht, warum es funktionierte. – nef4r1us

+0

Ah okay ... Es gibt Cache-Kontrolle in jQuery. –

Antwort

0

Ihre Antwort wird vom Browser zwischengespeichert. Ein gemeinsamer Trick, um dies zu vermeiden, ist eine Anforderung an

http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&r={random_number} 

Hinweis auszuführen, wie der r = {} random_number wird die URL jedes Mal anders machen.

+0

Ja. Es funktionierte. Vielen Dank! – nef4r1us

0

Dies ist ein Cache-Problem. Fügen Sie einen Zeitstempel als Abfrageparameter hinzu, und Sie sollten in der Lage sein, den Cache zu zerstören.

+0

Ich bin ziemlich neu "Coder" Wie kann ich das tun, damit es funktioniert? – nef4r1us

Verwandte Themen