我需要通过 POST 请求将用户重定向到外部站点。
我想到的唯一选择是通过 JavaScript 提交表单。
有任何想法吗?
原文由 RadiantHex 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要通过 POST 请求将用户重定向到外部站点。
我想到的唯一选择是通过 JavaScript 提交表单。
有任何想法吗?
原文由 RadiantHex 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
6 回答1.1k 阅读
不太清楚你的意思,所以让我们来看几个场景:
简单,只需将目标指定为表单操作:
很简单,照常接受和处理 POST 数据,然后用
302
或303
重定向标头响应。有点棘手,但三个选项:
您的服务器接受 POST 数据,当用户等待响应时,您与另一台服务器建立连接,发布数据,接收响应,然后将答案返回给用户。
您用
307
重定向回答,这意味着用户应该在另一个地址尝试相同的请求。从理论上讲,这意味着浏览器应该将相同的数据发布到另一台服务器。我不太确定它的支持程度如何,但任何理解 HTTP1.1 的浏览器都应该能够做到这一点。 AFAIA 它在实践中并不经常使用。PS: 规范说 307 POST 重定向需要至少得到用户的确认。 las,显然没有浏览器遵守这里的规范。 IE 只是重复请求(因此它可以满足您的目的),但 Firefox、Safari 和 Opera 似乎会丢弃 POST 数据。因此,不幸的是,这种技术是不可靠的。
使用技术 #1 结合隐藏的表单字段,在两者之间添加一个步骤。
请在此处查看所有 HTTP 重定向选项的列表: http ://en.wikipedia.org/wiki/Http_status_codes#3xx_Redirection