Neden tarayıcı AJAX isteği içinde 301 önbelleğe almaz?

2 Cevap php

Bu XMLHttpRequest olduğunu:

$.ajax({
    method: "get",
    url: "getPage.php",
    data: $data,
    dataType: 'json',
    timeout: 2000,
    success: function(result) {
        handleContent(result);
        }
    });

Bu getPage.php nedir? Data = veri

header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
header("HTTP/1.1 301 Moved Permanently");
header("Location: $location);

Bu $ konumu:

header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
print $print;

İstemci tarayıcısı düzgün $ yerini önbelleğe alır. Ancak getPage.php? Data = veriler yönlendirme önbelleğe almaz

Ajax isteği denir her zaman bir GET getPage.php? Veri = veri ister.

Ben otomatik $ yerine konumunu GET (ya da daha doğrusu $ konumunu GET ve önbellek sayfasını denemek olsun) istiyorum.

Bu 301 Kalıcı Yeniden Yönlendir ne için değil mi? Tarayıcı (artı bazı vekil, elbette arama motoru vb şeyler) tarafından önbelleğe alınmış bir yönlendirme oluşturma?

Bunu bu şekilde yapmak için tercih nedeni soru etmeyiniz. Ben buraya gitmek için gitmiyorum, bu nedenleri var. Ben istediğim bir cevap ve muhtemelen de tüm ilk istekten sonra GET istekleri sonuçlanan 301 yönlendirme olsun önbelleğe sağlayan bir çözümdür.

Şimdiden teşekkürler!

2 Cevap

Edit: şimdi çoğu tarayıcılar (Kasım 2013), önbellek yönlendirmeleri yapmak Browserscope ("Cache Redirect" testi) görmek, ama onlar soru soruldu zaman vermedi.

Sorunun sunulan çözümler hala (şu anda çoğunlukla çünkü tarayıcı uygulamaları) biraz 'Flakey' Steem rağmen bu konu ve yorumları, bu sorunu tam işlemek yollarını içerir:

http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call

Ben bunu bilgilendirici bulacağınızı umuyorum.