2016-03-31 5 views
1

Ich habe vor kurzem ein Blog gestartet und es von Hand codiert. Es ist eine statische CSS/HTML5-Website. Nachdem ich es mit Freunden geteilt habe, wurde mir klar, dass es, wenn ich es über FTP aktualisieren würde, bereits von seinen Browsern gecached würde. Ich entschied, dass ich alle meine Blog-Beiträge auf neue Seiten behalten und dann eine Landingpage erstellen würde, die irgendwie den neuesten Post ermitteln und Benutzer dort weiterleiten würde, nachdem sie auf eine Schaltfläche geklickt haben oder so ähnlich.Anfrage Textdatei in Javascript von URL?

Ich konnte eine Schaltfläche erstellen, die sie an einen bestimmten Link weiterleiten konnte, aber ich möchte ein Skript erstellen, das sie immer auf die neueste Seite weiterleitet. Also habe ich eine Datei mit dem Namen 'getLatest.json' erstellt und in einen 'api' Unterordner meiner Site hochgeladen. Ich habe dann versucht, eine XMLHttpRequest zu verwenden, um es zu laden:

function loadDoc() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     if (xhttp.readyState == 4 && xhttp.status == 200) { 
      window.location = "http://latestBlogPost.com" + 
      xhttp.responseText.today; 
      //Today is a parent in the object returned. 
     } 
    }; 
    xhttp.open("POST", "http://myWebsite.com/api/getLatest.json", true); 
    xhttp.send(); 
} 

Aber das hat nicht funktioniert. Die Antwort war eine leere Zeichenfolge. Ich habe versucht, jQuery ohne Erfolg zu verwenden.

Ich habe versucht, eine Datei namens getLatest.html hochladen, die die URL im Klartext enthielt. Das hat auch nicht funktioniert.

tl; dr: Gibt es eine Möglichkeit, dass ich Klartext aus dem HTML-Inhalt einer URL bekommen kann?

bearbeiten: getLatest.json und getLatest.html enthalten einen Link zu den neuesten Blog-Post.

+0

Warum schreiben Sie? Sie müssen den Antworttext in ein JSON-Objekt konvertieren, wenn dies zurückgegeben wird. – epascarello

+0

'xhttp.responseText' enthält bereits den Klartext der JSON-Datei, wenn Sie eine 'GET'-Anfrage verwenden ... Sie können' .today' nicht verwenden, da 'responseText' keine' today'-Eigenschaft hat . Wenn Sie eine Seite nicht zwischenspeichern möchten, müssen Sie Ihren HTTP-Server auf jeden Fall so einstellen, dass er die richtige Kopfzeile sendet, damit die Seite nicht zwischengespeichert wird. –

+0

Ist xhttp.responseText nicht die Antwort von der URL? Muss ich es mit JSON analysieren? – theDoctor5000

Antwort

-1

Es gibt mehrere Möglichkeiten, dies zu tun. Zuerst funktioniert Ihr Code nicht, weil Sie einen "POST" verwenden, sollte es "GET" sein, wenn Sie das tun, wird es funktionieren.

Zweite einfachste Weg ist es, eine Java-Script-Datei erstellen mit Variable deklariert und Referenz, die Datei auf Ihre Website

<script type="text/javascript" src="http://your javascript file"> </script> 

Diese Datei enthält Ihre Variable wie diese

var latestBlog = "http://...."; 

im Code Verwendung dieser Variable. Kein Code mehr erforderlich. aber wie ich bereits erwähnt, wenn Sie Ihr HTTP-Verb ändern, um Ihren Code zu bekommen

+0

Dies ist eine bessere Idee. Ich werde das benutzen. Vielen Dank! – theDoctor5000

+0

Außerdem verwendete ich POST, weil ich eine Datei brauchte, die nicht zwischengespeichert wurde. – theDoctor5000

+0

Wenn Sie möchten, dass eine Datei nicht zwischengespeichert wird, fügen Sie eine Zufallszahl als Abfragezeichenfolge hinzu, z. B. http://website.com/getlatest.json?dt=86767 – Krishna