2011-06-13 20 views
5

jquery kullanarak 307 Temporary Redirect statusCode ile çok fazla sorun yaşıyorum.Durum kodu 307 yönlendirmesi nasıl yapılır? Jquery

Gerektiğinde 307 döndüren bir apache sunucum var. 307 düzgün bir şekilde atılıyor (bunu ateş böceği veya bir wireshark izi ile görebiliyorum), ancak yönlendirmeyi tetikleyemiyorum.

$.ajax({ 
    url: someURL, 
    type: 'GET', 
    processData: false, 
    data: someData, 
    cache: true, 
    timeout: 5000, 
    statusCode: { 
     307: function() { 
      alert('307'); // this does NOT get called 
     } 
    }, 
    error: function(request, status, error){ 
     try { 
      console.log(request.getAllResponseHeaders()); 
     } 
     catch (err) { } 
    }, 
    success: function(data, textStatus, response){ 
     try { 
      console.log(response.getAllResponseHeaders()); 
     } 
     catch (err) { } 
    }); 

ben getAllResponseHeaders() yöntemi kullanarak yönlendirmek böylece başlıklarını kontrol etmek istedim. Bu 200 en için çalışıyor ancak 307 asla

tek şey trafik sağ yönlendirme sonra ajax GET url ile sunucuya gönderilen olmasıdır incelemek için Firebug'I kullanırken fark (success ne de error işleyicisinde) tetikler yönlendirme Ancak bu başarısızlığa neden olur.

Peki ne veriyor?

Düzenleme: jquery 1.5.1 ve 1.6.1

+0

HTTP yanıtınızın gövdesinin en az bir boş alan içerdiğinden emin olun. Tarayıcıların daha iyi hareket etmesine yardımcı olacaktır. Bu hata ayıklamaya yardımcı olabilecek bir Firefox eklentisi 'Canlı HTTP Başlıkları' çağrısı var. JQuery v 1.5 veya üstü kullanıyorsunuz, değil mi? – Teddy

+0

@ Teddy. Bunu jquery 1.5.1 ve 1.6.1 ile denedim. Ayrıca, tüm yönlendirme html sayfası 307 ile iade ediliyor – Darcy

cevap

4

Well ile bu çalıştı, biraz daha araştırma yaptım ve bir 307 tarayıcı tarafından otomatik olarak işlenir ve mümkün değildir anlaşılıyor jquery tarafından yakalanmak.

Yönlendirmeyi yapmak için farklı bir statusCode kullanarak bitti (410 Gone).

Bu muhtemelen en iyi çözüm değil, ancak apache sunucu koduna erişimim yok.

İlgili konular