【发布时间】:2017-09-03 06:16:06
【问题描述】:
我有一个反向代理服务器,它根据 Host 标头将您重定向到不同的服务。
但是,当使用浏览器向该服务器发出请求时,Host 始终设置为 URL 中的域名。我试过了:
fetch("http://foo.com", {"headers":{"Host":"bar.foo.com"}})
但它不起作用
【问题讨论】:
标签: javascript fetch-api
我有一个反向代理服务器,它根据 Host 标头将您重定向到不同的服务。
但是,当使用浏览器向该服务器发出请求时,Host 始终设置为 URL 中的域名。我试过了:
fetch("http://foo.com", {"headers":{"Host":"bar.foo.com"}})
但它不起作用
【问题讨论】:
标签: javascript fetch-api
Host 是forbidden header names 之一:
禁止的标头名称是不能以编程方式修改的 HTTP 标头名称。
【讨论】:
X-Forwarded-Host 通常由 代理设置,以向处理请求的服务器指示请求的 Host 标头是什么。我不确定反向代理是否会按原样转发它,您必须尝试看看是否可以。
这行不通。您不能在通过浏览器发出请求时设置禁止的标头。
您可以在此处获取禁止标头列表 - 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
【讨论】: