【发布时间】:2015-11-30 23:14:37
【问题描述】:
在我们的 Angular 应用程序中,我们需要解析一些 $http 的响应头。
特别是我们需要解析一些以 X 为前缀的响应头,例如X-Total-Results: 35。
打开浏览器开发工具的Network 选项卡并检查与$http 请求相关的资源,我验证了响应标头X-Total-Results: 35 存在。
在浏览器中,X-Total-Results 标头可用,但无法在 Angular $http 中解析。
有没有办法在 $http 中访问“原始”响应并为标头编写我们的自定义解析器?
$http.({method: 'GET', url: apiUrl,)
.then( function(response){
console.log('headers: ', response.headers());
console.log('results header: ', response.headers('X-Total-Results'));
// ...
})
控制台输出
headers: Object {cache-control: "no-cache="set-cookie"", content-type: "application/json;charset=utf-8"}
results header: null
【问题讨论】:
-
这很奇怪,你有任何拦截器可能会修改返回的承诺吗?
-
不,我没有任何拦截器
-
@yvesmancera 我也觉得这很奇怪!如果标题在开发工具浏览器中可见,则意味着它应该可以以角度访问,对吗?或者 CORS 或类似问题可能仍然存在一些问题?该 api 是跨域访问的,我有 CORS 我将用其他标题更新问题。
-
既然您提到了 CORS,这绝对是您的问题:stackoverflow.com/questions/6112524/…
-
谢谢,我会试试的。现在我有
Access-Control-Allow-Headers:X-Total-Results,当然还有Access-Control-Allow-Origin:*
标签: javascript angularjs http http-headers httpresponse