【问题标题】:Making post request from redirection in node.js从 node.js 中的重定向发出 post 请求
【发布时间】:2014-01-02 11:07:42
【问题描述】:

我正在尝试使用 response.writeHead 方法从节点 js 重定向到另一个 URL

response.writeHead(301, {Location : <redirecturl>})

我需要让这个重定向由 POST 方法执行,但它总是由 GET 执行。重定向可以作为 POST 请求的方式是什么。

【问题讨论】:

    标签: javascript node.js redirect httpresponse


    【解决方案1】:

    默认情况下,重定向会发送 GET 请求。根据 HTTP 规范,301 重定向意味着发送 GET 请求。如果您想使用相同的方法 (POST) 进行重定向,您可以尝试执行 307 重定向。

    【讨论】:

    • 谢谢..我刚用 307 得到它。我需要如何使用 307 检查任何其他后果。
    【解决方案2】:

    GET 和 POST 方法中的重定向没有区别。两种方法都应该可以找到。更好的是你可以使用它所在的 expressjs 框架

     res.redirect('http://example.com');
    

    使用状态码301 时要小心,这意味着永久移动。浏览器一旦得到301状态码,下次直接尝试重定向的URL。

    【讨论】:

      【解决方案3】:

      没有看到更多你的代码,我相信这就是你所描述的: 客户端已使用 HTTP 方法(get、post 等)向您的应用程序发出请求。您通过发回 301 错误和新 URL (redirecturl) 来响应该请求 然后客户端决定为redirecturl实现一个get请求。

      您无法更改客户端对 301 的响应方式。这是您无法控制的,浏览器启动重定向 URL 获取是正常的。

      您可以从您的服务器向重定向网址发起一个发布请求。 您可以发回一个网页,然后该网页将提交来自客户端的发布请求。

      你想达到什么目的?

      【讨论】:

      • 我在节点 js 应用程序上执行此操作。是的,问题陈述就是您提到的,我必须将 url 从我的节点 js 应用程序重定向到指定的 URL
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多