Angular2 http获取response header对象

很多时候需要获取响应头来进行一些操作,比如获取响应头中的Date来缓存请求时间,获取自定义的token进行用户登录验证等等。

一般请求头

如何拿到上面的信息呢,这里以获取Date值举例,相信很多人发现,在成功回调中打印header对象中并没有Date属性,如下:

this.http.get(urls).subscribe((res) => {

console.log(res.headers.get('Date'))            // 获取date值 输出null

console.log(res.headers.toJSON())             // 获取header对象 输出入下图

},error => {

.....

})


输出结果

为什么header对象中只有Content-Type属性呢,因为如果你与服务端同域,你可以获得所有header对象属性,但是如果不同域的话,需要在服务端设置expose_headers

Before

'^/api/':

allow_credentials: true

origin_regex: true

allow_origin:['*']

allow_headers:['Origin','Accept','Content-Type','Location']

allow_methods:['POST','GET','DELETE','PUT','OPTIONS']

max_age: 3600

After

'^/api/':

allow_credentials: true

origin_regex: true

allow_origin:['*']

allow_headers:['Origin','Accept','Content-Type','Location']

allow_methods:['POST','GET','DELETE','PUT','OPTIONS']

expose_headers:['Origin','Accept','Content-Type','Date']

max_age: 3600

这样设置完后 就能通过res.header.get('Date')获取响应头中Date的值了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容