【问题标题】:Redirect to a different URL only changing the domain name in flask重定向到不同的 URL 仅更改烧瓶中的域名
【发布时间】:2018-08-02 20:16:01
【问题描述】:

我正在使用 Python 烧瓶。我有一个POST 请求,其中包含一些有效负载说:

abc.com/hello/hello1

我想将此 (302) 重定向到:

xyz.com/hello/hello1

仅更改域名,同时保持其余部分和有效负载不变。有没有简单的方法来做到这一点?

【问题讨论】:

    标签: python redirect flask http-redirect


    【解决方案1】:

    根据 RFC,重定向请求(全部为 3xx)不能包含请求数据或标头。您将错过在原始请求中通过 POST 提供的有效负载。

    我可以立即想到两种可能的解决方法:

    1. 给客户端一个新的URL,在客户端实现进一步的逻辑;
    2. 在后端创建一个代理处理程序,它将自己执行请求并返回自己的答案。

    【讨论】:

      【解决方案2】:

      编辑:根据 Andrejs Cainikovs 在下面的评论,这不适用于带有有效负载的 POST。

      在您的端点中,获取使用 request.url 的 url(see request API here 以获得更多选项)。然后你可以重写它并进行重定向。

      newUrl = "xyz.com/" + route
      return redirect(newUrl, code=302)
      

      【讨论】:

      • 我事先不知道 /hello/hello1/ 部分。无论 abc.com 之后是什么,我都想将部分重定向到 xyz.com
      • @OliverBlue 你能用request.url_rulerequest.pathrequest.full_path获取路线吗?
      • 这行不通。根据 RFC,重定向请求不包含任何有效负载或标头。您将错过在原始请求中通过 POST 提供的有效负载。
      • @AndrejsCainikovs 好的,那么我们需要一种不同的方法。
      猜你喜欢
      • 2019-02-04
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      相关资源
      最近更新 更多