我在响应中从服务器发送自定义标头。在$http
响应拦截器中,我希望获得此标头,但我能得到的唯一标头是Content-type
标头。我该如何解决我的问题?
我$http
拦截器的一部分:
response: function (response) {
var AuthToken = response.headers('AuthToken');
return response || $q.when(response);
},
AuthToken
未定义。
答案 0 :(得分:29)
这是一个CORS问题。
回复应包含列出您要使用的特定标题的Access-Control-Expose-Headers
。
e.g。
Access-Control-Expose-Headers: AuthToken, AnotherCustomHeader
根据您的服务器设置,可以使用.htaccess文件(Apache)在站点范围内设置
<IfModule mod_headers.c>
Header set Access-Control-Expose-Headers AuthToken,AnotherCustomHeader
</IfModule>
或者在服务器代码中设置每个请求(php)
header('Access-Control-Expose-Headers: AuthToken, AnotherCustomHeader');
答案 1 :(得分:0)
@slamborne,听起来不错。 对于.Net
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Expose-Headers" value="AuthToken"/>
</customHeaders>
</httpProtocol>
</system.webServer>