【问题标题】:Can you set the Host header using fetch API您可以使用 fetch API 设置主机标头吗
【发布时间】:2017-09-03 06:16:06
【问题描述】:

我有一个反向代理服务器,它根据 Host 标头将您重定向到不同的服务。 但是,当使用浏览器向该服务器发出请求时,Host 始终设置为 URL 中的域名。我试过了:

fetch("http://foo.com", {"headers":{"Host":"bar.foo.com"}})

但它不起作用

【问题讨论】:

    标签: javascript fetch-api


    【解决方案1】:

    Hostforbidden header names 之一:

    禁止的标头名称是不能以编程方式修改的 HTTP 标头名称。

    【讨论】:

    • 那么我应该使用 X-Forwarded-Host 让我的反向代理服务器将客户端请求重定向到不同的服务吗?
    • @Qiulang X-Forwarded-Host 通常由 代理设置,以向处理请求的服务器指示请求的 Host 标头是什么。我不确定反向代理是否会按原样转发它,您必须尝试看看是否可以。
    【解决方案2】:

    这行不通。您不能在通过浏览器发出请求时设置禁止的标头。

    您可以在此处获取禁止标头列表 - https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name

    类似的答案在这里:
    Ajax request: Refused to set unsafe header
    Not able to set HTTP Host header on $.ajax request

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2016-02-12
      相关资源
      最近更新 更多