【发布时间】:2014-01-02 11:07:42
【问题描述】:
我正在尝试使用 response.writeHead 方法从节点 js 重定向到另一个 URL
response.writeHead(301, {Location : <redirecturl>})
我需要让这个重定向由 POST 方法执行,但它总是由 GET 执行。重定向可以作为 POST 请求的方式是什么。
【问题讨论】:
标签: javascript node.js redirect httpresponse
我正在尝试使用 response.writeHead 方法从节点 js 重定向到另一个 URL
response.writeHead(301, {Location : <redirecturl>})
我需要让这个重定向由 POST 方法执行,但它总是由 GET 执行。重定向可以作为 POST 请求的方式是什么。
【问题讨论】:
标签: javascript node.js redirect httpresponse
默认情况下,重定向会发送 GET 请求。根据 HTTP 规范,301 重定向意味着发送 GET 请求。如果您想使用相同的方法 (POST) 进行重定向,您可以尝试执行 307 重定向。
【讨论】:
GET 和 POST 方法中的重定向没有区别。两种方法都应该可以找到。更好的是你可以使用它所在的 expressjs 框架
res.redirect('http://example.com');
使用状态码301 时要小心,这意味着永久移动。浏览器一旦得到301状态码,下次直接尝试重定向的URL。
【讨论】:
没有看到更多你的代码,我相信这就是你所描述的: 客户端已使用 HTTP 方法(get、post 等)向您的应用程序发出请求。您通过发回 301 错误和新 URL (redirecturl) 来响应该请求 然后客户端决定为redirecturl实现一个get请求。
您无法更改客户端对 301 的响应方式。这是您无法控制的,浏览器启动重定向 URL 获取是正常的。
您可以从您的服务器向重定向网址发起一个发布请求。 您可以发回一个网页,然后该网页将提交来自客户端的发布请求。
你想达到什么目的?
【讨论】: