2012-09-12 22 views
5

Bir sunucu bitiş noktasına, aynı sayfaya 301 yönlendirmesi yapan ancak sonundaki bir eğik çizgi ile bir AJAX çağrısı var.AJAX'ta 301 yönlendirmesi - yeniden yönlendiriliyor mu?

Tarayıcı, AJAX ile çağrıldığında yönlendirmeleri izliyor mu yoksa bunları yoksayıyor mu? Benim durumumda onları takip etmiyor, ancak sunucu yapılandırmasından bir şey olabileceğini düşündüm.

cevap

4

Eğer jquery kullanıyorsanız, uygulamak için aşağıdaki sorulara bakabilirsiniz. biraz geç

How to manage a redirect request after a jQuery Ajax call

How to prevent ajax requests to follow redirects using jQuery

handle jquery ajax redirect

+1

Tamam, jQuery yönlendirmeleri izlemiyor, görüyorum. Teşekkürler. –

+7

Um, no. XHR, yönlendirmeleri şeffaf bir şekilde takip edecektir. –

+1

Her durumda değil. 301 yönlendirme kurulumum var ve FF onları takip etmiyor. Ancak Chrome da var. – threejeez

3

Belki bu cevaptır ama vardı: varsayılan jQuery (ve Ajax ile en kütüphaneler) uymayan tarafından varsayılan olarak yönlendirir ajax isteğinde 301 yanıt ile aynı sorun. Çözüm oldukça basitti:

RewriteRule ^([^/]\w+)/?$ index.php?%{QUERY_STRING} [L,E=MODULE:$1] 

Sizin XHR-istek url böyle Someting görünüyor:

/this/is/a/canonical/url + '?param=1&param=2...' 

301 kalıcı olarak taşındığını için bu yol açacaktır

apache yeniden yazma kuralı böyle bir şeydir Doğrudan bir dosya çağrısı (fi * .php) kullanmıyorsanız ve kurallı URL'ye (fi * .php olmayan bir dizin yoluna benziyor) yeniden yazmazsanız.

bu sorunun sadece bu gibi XHR-istek-URL'ye/a eklemek çözmek için:

/this/is/a/canonical/url + '/' + '?param=1&param=2...' 

Belki bu kimse yardımcı olacaktır.

+0

Bu benim için sabit, teşekkürler –

-1

jQuery'nin API'sine göre (http://api.jquery.com/jQuery.ajax/), async:false (eşzamanlı mod), etki alanları arası ve dataType: "jsonp" isteklerini desteklemez.

+2

Üzgünüm, ama soru ile ne ilgisi var? –

+0

@EduardLuca Üzgünüm, yönlendirme alan adını geçmiyor. – GlacJAY

+0

Başka bir alana geçmem gerekmiyor, yönlendirme aynı URL'de ancak takip eden bir eğik çizgi ile gerçekleşiyor. –

2

Ayrıca bu sorun vardı ve fraks ile ilgili öneri beni düşünmemi sağladı ... Web.Config'imde her şeyi küçük yapmak için bir yeniden yazma kuralı vardı ve AJAX çağrımı karıştırıyordum. GetResults için (301 olarak gösterildi) POST yazıyordum ve (bazı bilinmeyen nedenlerden dolayı) yeniden yazdığım bir rapçi, onu bir 404. sonuçlandı. GET sonuçlandı.

İlgili konular