当前位置: 首页 > 面试题库 >

用POST请求重定向的好方法吗?

柴兴贤
2023-03-14
问题内容

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

我发现的唯一选择是通过JavaScript提交表单。

有任何想法吗?


问题答案:

你的意思还不太清楚,所以让我们来看一些情况:

  1. 用户应将表格过帐到你自己以外的服务器上

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

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

像往常一样轻松地接受和处理POST数据,然后使用302303重定向标头进行响应。

  1. 用户应将数据发布到你的服务器,并且在验证之后,你希望将该数据发布到另一台服务器

有点棘手,但有以下三种选择:

  • 你的服务器接受POST数据,并且在用户等待响应时,你将与另一台服务器建立连接,发布数据,接收响应,然后将答案返回给用户。
  • 你通过307重定向回答,这意味着用户应在另一个地址尝试相同的请求。从理论上讲,这意味着浏览器应将相同的数据发布到另一台服务器。我不太确定这支持的程度如何,但是任何了解HTTP1.1的浏览器都应该能够做到。AFAIA在实践中并不经常使用。
    PS:规范说,至少需要用户确认307 POST重定向。las,显然,没有浏览器遵守此处的规范。IE只是重复请求(因此可以满足你的目的),但是Firefox,Safari和Opera似乎会丢弃POST数据。因此,不幸的是,该技术是不可靠的。
  • 将技巧1与隐藏的表单字段结合使用,在两者之间增加了一个步骤。


 类似资料:
  • 我有一个网页,这是一个邮政路线。这个页面有一个删除按钮,可以路由到另一个POST路由,在这里我删除指定的数据库行并重定向回第一个页面。 问题是,当我使用任何back()或reway()函数时,它们似乎会产生对上一个URL的GET请求。但上一页是仅限POST页。 如何将POST请求和POST数据重定向回?

  • 我正在制作一个包含Node.js、Express和EJS的应用程序,在按下一个按钮后,它会将您重定向到一个不同的页面(例如从localhost:3000/转到localhost:3000/about)。post请求被服务器接收,因为'post request'被记录到服务器端控制台,但是我没有被重定向,没有错误消息或任何东西。 服务器: 客户:

  • 问题内容: 我想从一个URL请求重定向到另一个“ POST”请求,如下所示: 但是,我无法重定向到“ / test”页面,因为它是POST请求。 那么,在保持“ / test”请求POST的情况下,如何使重定向工作呢? 问题答案: 你可以这样做: 它将保留send方法。 供参考,307 http代码规范为: 307临时重定向(自HTTP / 1.1起)在这种情况下,应使用另一个URI重复请求,但是

  • 我试图点击一个postendpoint,但它给出了错误302,当我在同一台服务器上尝试另一个get Url时,它给出了200。然后,我使用laxrirectstrategy()重定向了post请求。post请求正在重定向到get请求(只有同一个endpoint的方法名是get和post),它没有从post方法获得响应。有人能告诉我如何使用apahce httpClient 4.5将post请求重定

  • 我正在尝试使用重定向规则设置静态web托管。在我的应用程序中,任何具有前缀api/(http://web.company.com/api)的请求都应该重定向到具有相同前缀(http://api.company.com/api)的另一个主机。我已按以下方式设置路由规则: 但请求没有被正确重定向。控制台中有两个不同的错误: XMLHttpRequest无法加载http://api.company.co

  • 我正在使用JMeter执行登录。使用浏览器时,我输入一个网页地址,它会自动将我重定向到登录窗口。 如果我用JMeter执行相同的GET请求,它不会将我重定向到登录窗口。经过调查,我发现当我输入网页地址时,浏览器会执行下一个请求: 获取带有302重定向响应的网页 当我使用JMeter并使用follow redirect执行GET请求时,我只得到:1。获取带有302重定向响应2的网页。获得200 OK