Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';angularjs httpprovider拦截器无法访问自定义http响应头(CORS请求)的原因是什么?_Angularjs_Http Headers_Cors_Interceptor - Fatal编程技术网

什么';angularjs httpprovider拦截器无法访问自定义http响应头(CORS请求)的原因是什么?

什么';angularjs httpprovider拦截器无法访问自定义http响应头(CORS请求)的原因是什么?,angularjs,http-headers,cors,interceptor,Angularjs,Http Headers,Cors,Interceptor,我有一个angularjs 1.x应用程序,它使用JSON与rest服务通信 因为服务位于不同的域下,所以我使用CORS 我的angular应用程序有一个响应拦截器,用于记录响应头: app.factory('responseInterceptor', ["$q", function ($q) { return { response: function (response) { console.log(response.headers()); //

我有一个angularjs 1.x应用程序,它使用JSON与rest服务通信

因为服务位于不同的域下,所以我使用CORS

我的angular应用程序有一个响应拦截器,用于记录响应头:

app.factory('responseInterceptor', ["$q", function ($q) {
    return {
        response: function (response) {
            console.log(response.headers()); // log the headers!!!
            return response || $q.when(response);
        },
        responseError: function (rejection) {
            return $q.reject(rejection);
        }
    }
}]).
config(['$httpProvider', function ($httpProvider) {
    $httpProvider.interceptors.push('responseInterceptor');
}]);
现在一切正常,但我无法访问自定义http响应头

我正在使用http嗅探器工具,可以在服务器响应中看到头

我很确定这和CORS有关,但我不能确定

响应头(包括COR)如下所示:

Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
MY-CUSTOM-HEADER: Go Home This Works
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, PATCH, DELETE
Access-Control-Allow-Headers: MY-CUSTOM-HEADER, CONTENT-TYPE
Date: Tue, 21 Jun 2016 13:18:20 GMT
Content-Length: 14112
这是我在控制台中从拦截器看到的:

Object {pragma: "no-cache", content-type: "application/json; charset=utf-8", cache-control: "no-cache", expires: "-1"}
问题:

当我记录响应标题时,为什么看不到
MY-CUSTOM-HEADER
?或者我可以在嗅探工具上看到的其他http响应头。谁阻止我在
应答器上访问它们

编辑
我已经在同一个域下检查了同一个应用程序,并且可以使用相同的代码访问头部。它确实与CORS有关。

好的,在确定问题是CORS之后,我发现我缺少一个名为
访问控制公开头的CORS http头。


设置
Access Control Expose Headers=“MY-CUSTOM-HEADER”
后,我能够访问该头。

确定问题是CORS后,我发现我缺少一个名为
Access Control Expose Headers的CORS http头

设置
访问控制Expose Headers=“MY-CUSTOM-HEADER”
后,我可以访问该头