クライアントに知らせずにAjaxコールをリダイレクトする必要があります。Ajaxコール内でリダイレクト
getPage.phpは、特定のクエリに対してhtmlなどを返すアプリケーションです。
getPage.php?ハッシュ=面白い-記事タイトルとgetPage.php?= 3ページには、同じことを返します。これらの両方をキャッシュすることからクライアントを回避するために
私はgetPage.phpをご希望ですか?getPage.phpにリダイレクトするハッシュ=面白い-記事タイトル?ページ= 3 PHPヘッダ301と場所を経由して。
これをやってみましたが、何も返しません。 ajax呼び出しはリダイレクトされたくないようです。
このダブルキャッシュの問題を解決できる人は誰ですか?
キャッシュ可能な301リダイレクトを使用したいと思います。このようにして、ハッシュ= insteresting-article-タイトルをフェッチするように指示されたとき、ブラウザはページ= 3を自動的に呼び出します。
コード例:
function handleInit(event) {
if (event.path != "/") {
var hash = event.path.replace(/\//,"").replace(/\?/g,"");
getPage(hash);
currentState.hash = hash;
} else {
currentState.id = 1;
}
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);
}
function chapter_forward() {
if (!freeze) {
freeze = true;
getPage(currentState.id - 1);
}
}
function ajax_data(id) {
return typeof(id) == "string" ? "hash=" : "page=";
}
function getPage(id) {
$.ajax({
method: "get",
url: getPage.php,
data: ajax_data(id) + id.toString(),
dataType: 'json',
timeout: 2000,
error: function() {
$("#space-3").html('40104 - Request Timeout');
},
complete: function() {},
success: function(result) {
handleContent(result);
}
});
}
私は、ユーザーが自分の前後に、ブラウザのボタンを使用していますHASHからIDを取得するので、私は、リダイレクトが発生する必要がある理由です。
ユーザーが前後にナビゲートするだけで、現在のIDに+1を追加するだけです。
{"article_id":"3","hash":"music-in-your-ear","title":"Music in your ear.","html":"Blah blah article 3","modified":"Fri, 20 Mar 2009 02:46:00 GMT"}
ありがとう:
getPage.phpはこのような何かを返します!
どこでAjaxを使用しますか?あなたのページ内のAjaxに次のページをロードするよう呼びかけているのですか、またはAjaxを使ってリダイレクトしようとしていますか?いくつかのサンプルコードがありますか? –
いくつかのコード例を提供できますか? –
私は質問を更新しました。 – Willem