How to get headers of the response from fetch

限于喜欢 提交于 2019-12-21 03:19:46

问题


I am using fetch on chrome Version 52.0.2743.82 (64-bit). I want to get all the headers in the response. Following snippet only return content-type but if you peek into chrome dev tools it shows many other response headers. How to get other headers from fetch.

  fetch('https://httpbin.org/get')
    .then(response => {
       const headers = response.headers.entries();
       let header = headers.next();
       while (!header.done){
         console.log(headers.value);
         header = header.next();
       }
    })

I tried polyfilling(manually overriding) the github implementation. Still no luck.


回答1:


You can't access all the headers when requesting cross-domain content via ajax. You can access all headers if origin is same.

As explained in W3 Specifications here, only Content-Type, Last-modified, Content-Language, Cache-Control, Expires, Pragma headers are accessible.

Further https://httpbin.org/get send only Content-Type header from list of accessible headers so, you got that only.

Edit: You can expose non-standard CORS response headers by sending Access-Control-Expose-Headers with the headers you want the client to access on the response.



来源:https://stackoverflow.com/questions/38953864/how-to-get-headers-of-the-response-from-fetch

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!