gpt4 book ai didi

javascript - Angular $http 请求中强制使用 'Host' header 值

转载 作者:行者123 更新时间:2023-12-03 05:39:39 24 4
gpt4 key购买 nike

我想访问托管在多站点服务器 S 上的 API 站点。我有 S 的 IP 地址,但没有 DNS 服务器,因此我必须使用以下参数发出 http 请求:

{
URL : 'http://192.168.1.xxx:80/data',
headers : {
Host : 'api.somesite.com'
},
data : ...
}

但是,在发送之前,“Host” header 会自动被 Angular 替换为“192.168.1.xxx”(因此请求失败)。我已经尝试实现一个 http 拦截器:

api.run(['$http',function($http) {
console.log("set host");
$http.defaults.headers.common.Host = "api.somesite.com";
}]);

...没有结果:服务器以 ERROR 500 应答,并且开发工具显示请求的 header “Host”设置为 IP 地址。

或者,是否有其他方法可以使用网站的 IP(无需 DNS)向网站发出 http 请求?

最佳答案

Host 定义为 forbidden header name在 XMLHttpRequest/fetch 规范中,因此无法在浏览器中通过 JavaScript 设置它。

整理 DNS、编辑每个客户端的系统主机文件或将每个客户端配置为使用知道如何解析 URL 的 HTTP 代理是解决此问题的唯一方法。

关于javascript - Angular $http 请求中强制使用 'Host' header 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40596406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com