2011-02-15 48 views
0

根據我以前的question,我需要將HTTP POST請求重定向到不同的服務器。我相信這可以使用來自PHP的HTTP響應頭,但我明白POST請求將成爲GET請求。我的問題是HTTP請求的正文發生了什麼?被丟棄,還是將其轉換爲GET請求的查詢url的一部分?當HTTP POST重定向到GET時,POST主體會發生什麼?

即如果一個POST就是http://mysite.com/handler.php製成,我重定向到http://othersite.com/handler.php將它自動成爲http://othersite.com/handler.php?param1=hello&param2=world

回答

3

的POST數據消失。除非重定向腳本採取措施將POST數據推送到GET的URL或cookie中,否則數據就會死灰復燃。

這是有點設計。大多數瀏覽器限制一個URL的長度,並且POST對被POST數據的大小沒有實際限制,所以你不希望剛剛上傳的500MB文件附加到GET URL的查詢行。

0

如果您使用CURL重定向這樣的請求,它將被視爲與原始請求無關的獨特的新HTTP請求。傳遞的唯一數據是您在查詢字符串中顯式傳遞的數據。