2012-08-08 25 views
6

Ben MethodView böyle bakıyor olması demek başarılı, get işlevini ancak POST numaralı çağrıyla yeniden yönlendiriliyor ve Method Not Allowed'u yükseltiyor.SONRASI sonra-yönlendirme ve MethodViews

127.0.0.1 - - [08/Aug/2012 12:35:21] "POST /provider/ HTTP/1.1" 302 - 
127.0.0.1 - - [08/Aug/2012 12:35:21] "POST /provider/44 HTTP/1.0" 405 - 

yerine GET çağrıyı kullanmaya redirect anlamanın bir yolu var mı?

+2

Bunu da ben alıyorum, ama hiç cevabım var ve bu soru üzerine tökezledi. Bir cevap buldunuz mu? – blueblank

+0

Hiçbir erkek. Django'da projeye geri döndüm, ancak şişe daha iyi görünüyor olsa da ... – tutuca

+4

302 volatilite http://tools.ietf.org/html/rfc2616#section-10.3.3 "* Not: RFC 1945 ve RFC 2068 İstemcinin yönlendirilen istekte yöntemi değiştirmesine izin verilmez.Ancak, mevcut kullanıcı aracısı uygulamalarının çoğu, 302 yanıtı, sanki orijinal istek yönteminden bağımsız olarak Konum alanı değeri üzerinde bir GET gerçekleştiriyormuş gibi davranır. 303 ve 307, istemciden ne tür bir tepki beklendiğini net bir şekilde açıklamak isteyen sunucular için eklenmiştir. * " – soulseekah

cevap

2

Bir önceki isteğiyle aynı istek yöntemiyle 302 yönlendirmesi yapılabilir. Ancak, bir 303 yönlendirmesi her zaman GET (source) kullanmalıdır.

Yönlendirme işlevi bir durum kodu alabilir. Benzer tartışma:

  return redirect(url_for(
       'provider', 
       provider_id=obj.id, 
       ), 
       code=303 
      ) 

Edit: Bu deneyin Redirecting to URL in Flask

+0

Yani şişedeki bir böcek mi? Her zaman "POST" isteklerini alırım ... – tutuca

İlgili konular