URL/ürünlerinden erişilebilen bir sayfam var. Bir tarayıcıda ziyaret ettiğimde, bir düzen içinde tam sayfa ile yanıt verir. Bir kullanıcı bazı arama AJAX JavaScript güncellemeler sonuçları yaparTarayıcı, AJAX yoluyla alınmış kısmi bir HTML ile tam sayfa
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
<layout>
<products />
</layout>
: Burada istek başlıklarına ve yanıt gövdesinin basitleştirilmiş bir örnektir. render zaman alır çünkü sonuç bir düzen olmadan görüntülenir ve ben zaten gerek yoktur: Ben önbelleğe Cache-Control: private, max-age=3600
eklendi kadar
Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
X-Requested-With: XMLHttpRequest
<products />
Yani, bu iyi çalıştı. Başlangıçta ben
Vary: X-Requested-With
üstbilgisi eklerim ve bir tarayıcı iki yanıtı ayırt ederdi. Bununla birlikte, AJAX aracılığıyla/ürünler aldığımda/tarayıcıdaki/ürünleri ziyaret ettiğimde, kısmi AJAX yanıtını görüntüler.
Bu sorunu çözmenin basit bir yolu var mı?
P.S. Önemliyse Ruby on Rails ve jQuery kullanıyorum.
'Vary: Accept' denediniz mi? – regilero
Evet, ayrıca çalışmıyor. Tarayıcının her iki yanıtı da düzgün bir şekilde önbelleğe aldığını düşünüyorum. Ancak Content-Type (İçerik Türü): text/html nedeniyle bunları eşit olarak ele alır ve sonuncusu olanı gösterir. –
Aslında JSON ile yanıt vermeye çalıştım ve şimdi JSON'u gösteriyor. Bu, İçerik Türü'ne bağlı değildir: text/html. "Vary" nin burada herhangi bir etkisi olmadığı konusunda oldukça şaşırdım. –