Ich muss einen Ajax-Anruf umleiten, ohne den Client wissen zu lassen.Redirect in Ajax Anruf
getPage.php ist eine Anwendung, die HTML etc. für eine bestimmte Abfrage zurückgibt.
getPage.php? Hash = interessant-Artikel-Titel und getPage.php? Page = 3 kehrt gleich.
Um den Client aus, die in der Cache beides vermeiden würde ich getPage.php? Hash = interessant-Artikel-Titel Umleiten zu getPage.php? Page = 3 über PHP-Header 301 und den Ort mag.
Ich versuchte dies und es gibt nichts zurück. Der Ajax-Anruf scheint nicht umgeleitet werden zu wollen.
Hat jemand eine Idee, was könnte dieses Doppel-Cache-Problem lösen?
Ich möchte 301 Redirects verwenden, weil sie zwischenspeicherbar sind. Auf diese Weise ruft der Browser automatisch page = 3 an, wenn er aufgefordert wird, hash = inseresting-article-title abzurufen.
Code-Beispiele:
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);
}
});
}
Der Grund, warum ich die Umleitung brauchen, ist zu geschehen, weil ich die ID von einem HASH erhalten, wenn der Benutzer seinen Rücken verwendet und her Browser-Schaltflächen.
Wenn der Benutzer einfach hin und her navigiert, füge ich einfach +1 zur aktuellen ID hinzu.
getPage.php gibt so etwas wie dieses:
{"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"}
Dank!
Wo verwenden Sie den Ajax? Rufen Sie Ajax innerhalb Ihrer Seite an, um die nächste Seite zu laden, oder versuchen Sie, Ajax zum Umleiten zu verwenden? Hast du einen Beispielcode? –
Können Sie einige Codebeispiele bereitstellen? –
Ich habe die Frage aktualisiert. – Willem