Javascript AngularJS中添加的自定义头仅在访问控制请求头上显示

Javascript AngularJS中添加的自定义头仅在访问控制请求头上显示,javascript,angularjs,Javascript,Angularjs,我正在尝试使用拦截器向AngularJS应用程序中的每个请求添加自定义头,代码如下: angular.module('app').factory('httpRequestInterceptor', function () { return { request: function (config) { config.headers['testheader'] = 'testheaderworks'; return confi

我正在尝试使用拦截器向AngularJS应用程序中的每个请求添加自定义头,代码如下:

angular.module('app').factory('httpRequestInterceptor', function () {
    return {
        request: function (config) {
            config.headers['testheader'] = 'testheaderworks';

            return config;
        }
    };
});

angular.module('app').config(function ($httpProvider) {    
    $httpProvider.interceptors.push('httpRequestInterceptor');
});
此代码是从对的答复中复制的

不幸的是,当我检查结果请求时,我得到以下结果:

显示临时标题

访问控制请求头:接受,testheader

访问控制请求方法:GET

来源:

推荐人:

用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/46.0.2490.86 Safari/537.36


我在Chrome的网络选项卡和服务器端都确认了这一点。为什么将自定义头键“testheader”添加到访问控制请求头中,而不是添加到常规头中?价值发生了什么变化?是否有其他方法向每个AngularJS请求添加自定义头以避免此问题?

如果有人阅读此内容并遇到相同问题:

问题是Angular正在发出跨原点请求,而浏览器正在阻止该请求。为了启用这个请求,我必须在服务器端启用头。在我们的例子(NodeJs)中,执行此操作的代码是:

app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Headers", testheader");
    next();
});

你解决了这个问题吗?@mzain是的,请看下面我的答案。你救了我的命:)我在angular4中面临相同的头问题。我的自定义头添加在访问控制请求头中,而不是单个头。