2016-03-31 3 views
1

私は最近ブログを始め、手作業でコード化しました。静的なCSS/HTML5ウェブサイトです。友人と共有すると、私はFTPで更新すると、すでにブラウザでキャッシュされていることに気付きました。私はブログのすべての投稿をに保存し、ののボタンをクリックした後に何らかの方法で最新の投稿と転送先のユーザーを決定するリンク先ページを作成することに決めました。URLからjavascriptでプレーンテキストファイルをリクエストしますか?

特定のリンクに転送できるボタンを作成できましたが、常に最新のページに転送するスクリプトを作成したいと思います。そこで、私は「getLatest.json」というファイルを作成し、それを自分のサイトの「api」サブフォルダにアップロードしました。私はそれを読み込むためにXMLHttpRequestを使用しようとしました:

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(); 
} 

しかし、それは動作しませんでした。応答は空文字列でした。私は無駄にjqueryを使用してみました。

URLを含む平文のgetLatest.htmlというファイルをアップロードしようとしました。それはどちらもうまくいかなかった。

tl; dr:URLのHTMLコンテンツからプレーンテキストを取得できる方法はありますか?

編集:getLatest.jsonとgetLatest.htmlには、最新のブログ投稿へのリンクが含まれています。

+0

投稿はなぜですか?応答テキストが返されている場合は、応答テキストをJSONオブジェクトに変換する必要があります。 – epascarello

+0

'xhttp.responseText'には、' GET'リクエストを使用するとjsonファイルのプレーンテキストがすでに含まれています。 'responseText'に' today'プロパティがないため、 '.today'を使用することはできません。どのような場合でも、ページをキャッシュしないようにするには、正しいヘッダーを送信してページをキャッシュしないようにHTTPサーバーを設定する必要があります。 –

+0

xhttp.responseTextはURLからの応答ではありませんか?私はJSONで解析していますか? – theDoctor5000

答えて

-1

これを行うにはいくつかの方法があります。 "POST"を使用しているため、最初にコードが機能していません。 "POST"を使用している場合は、 "GET"しなければなりません。

第二に、最も簡単な方法は、ファイル

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

あなたのウェブサイトには、このファイルには、コードの使用におけるこの

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

このようなあなたの変数が含まれていることを、変数宣言と参照を持つJavaスクリプトファイルを作成することです変数。コードは必要ありません。しかし、あなたがコードを動かすためにあなたのHTTP動詞を変更する場合、私が以前に述べたように

+0

これは良いアイデアです。私はこれを使用するつもりです。ありがとう! – theDoctor5000

+0

また、キャッシュされていないファイルが必要だったのでPOSTを使用していました。 – theDoctor5000

+0

ファイルがキャッシュされないようにするには、http://website.com/getlatest.json?dt=86767のようなクエリ文字列として乱数を追加します – Krishna

関連する問題