Мне нужно перенаправить вызов Ajax, не сообщая об этом клиенту.
getPage.php - это приложение, которое возвращает html и т. Д. Для данного запроса.
getPage.php? Hash = интересно-заголовок статьи и getPage.php? Page = 3 возвращает то же самое.
Чтобы клиенту не приходилось кэшировать оба эти параметра, я бы хотел, чтобы getPage.php? Hash =интересный заголовок статьи перенаправил на getPage.php? Page = 3 через PHP заголовок 301 и местоположение.
Я пытался сделать это, и ничего не возвращается. Кажется, что вызов ajax не хочет быть перенаправленным.
Кто-нибудь знает, что может решить эту проблему двойного кэша?
Я хотел бы использовать перенаправления 301, потому что они кэшируются. Таким образом, браузер будет автоматически вызывать page = 3 , когда ему будет приказано извлечь hash = insteresting-article-title .
Примеры кода:
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, когда пользователь использует свои кнопки браузера вперед и назад.
Когда пользователь просто перемещается назад и вперед, я просто добавляю +1 к текущему идентификатору.
getPage.php возвращает что-то вроде этого:
{"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"}
Спасибо!