繁体   English   中英

Angular $ http请求中“主机”标头的强制值

[英]Force value of 'Host' header in Angular $http request

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

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

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

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

...没有结果:服务器回答错误500,开发工具显示请求的标头“ Host”设置为ip地址。

另外,还有其他方法可以通过使用其ip(不使用DNS)向网站发出http请求吗?

Host在XMLHttpRequest / fetch规范中定义为禁止的标头名称 ,因此无法从浏览器的JavaScript中进行设置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM