根据我之前的question,我需要将HTTP POST请求重定向到其他服务器。我相信这可以使用来自php的HTTP响应头来完成,但我知道POST请求将成为GET请求。我的问题是HTTP请求正文会发生什么?是丢弃,还是将其转换为GET请求的查询URL的一部分?
即。如果对http://mysite.com/handler.php
进行POST并且我重定向到http://othersite.com/handler.php
,则会自动成为http://othersite.com/handler.php?param1=hello¶m2=world
答案 0 :(得分:3)
POST数据消失了。除非重定向脚本采取措施将POST数据推送到GET的URL或cookie中,否则数据就会消失。
这有点设计。大多数浏览器限制了URL的长度,POST对POST的数据大小实际上没有限制,因此您不希望刚刚上传的500megabyte文件附加到GET url的查询行。
答案 1 :(得分:0)
如果您使用CURL重定向此类请求,则会将其视为与原始HTTP请求完全无关的新HTTP请求。传递的唯一数据是您在查询字符串中明确传递的数据。