javascript - 使用 POST 请求重定向的好方法?

标签 javascript html django redirect

我需要通过 POST 请求将用户重定向到外部站点。

我想到的唯一选择是通过 JavaScript 提交表单。


有什么想法吗?

最佳答案

不太清楚你的意思,所以让我们来看几个场景:

  1. 用户应该将表单发送到您自己以外的服务器

    很简单,只需将目标指定为表单操作即可:

     <form action="http://someotherserver.com" method="post">
    
  2. POST 提交成功后应重定向用户

    很简单,照常接受和处理 POST 数据,然后用 302303 重定向 header 响应。

  3. 用户应该将数据 POST 到您的服务器,并且在验证之后,您想将该数据 POST 到另一台服务器

    有点棘手,但有三个选择:

    • 您的服务器接受 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

关于javascript - 使用 POST 请求重定向的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604530/

相关文章:

javascript - 使用 Materialise 的嵌入式日历

html - <strong> 标签在 CQ5 中被替换为 <b> 标签

javascript - Gun 如何在有时断开的 P2P 网络中管理用户

javascript - 链接执行 javascript 代码的正确方法

javascript - 读取 HTML 对象标签中的数据

Django Rest Framework 忽略默认值

python - Django 无法在 Docker 设置中连接到 Postgres

sql - 在 SQL 或 Django ORM 中,订购一对多的常规方法是什么?

javascript - 需要显示有关手机的验证错误消息

javascript - react : setState is not rendering the page again