Response header not showing

我怕爱的太早我们不能终老 提交于 2020-01-29 20:37:13

问题


I am building a simple web app using ReactJS and create-react-app.

I have a backend API set up on Heroku where I can make POST requests. Everything works fine, except:

When I make a POST request using fetch API, the response is 100% correct but it only gives me 2 standard headers. I want to get my custom header. I have added expose header in my response and here's the plot twist: When I view the headers from Chrome Inspection Tool or Postman (API tool), it shows all the headers, including my custom one. Here is the fetch code I'm using -

fetch(theUrl, {
  method: 'POST',
  body: JSON.stringify({
    "placeholder": "placeholder"
  })
})
.then(function(res) {
  console.log(res.headers.get('CUSTOM_HEADER_NAME'));
})

If it makes any difference, this fetch method is called from a function outside the main body of the ReactJS component.

The name of the custom header is Image-Identification-Path, and the header in my response header is Access-Control-Expose-Headers for Image-Identification-Path.

Summary: How do I get my custom header using fetch?


回答1:


You must configure the server to which the request is going to so its response has an Access-Control-Expose-Headers header whose value include the name of your custom response header.

Otherwise, if your browser does not see the name of your custom header in that Access-Control-Expose-Headers header, it won’t let you access the value of your custom response header.

In such a case it’s expected that you’d still be able to see the custom header if you look at the response in Postman or even in your browser devtools.

But just because that browser is getting the custom header in the response does not mean the browser will expose it to your client-side JavaScript code.

For cross-origin requests, the browser will only expose that custom response header to your client code if that header name is in the value of the Access-Control-Expose-Headers header.



来源:https://stackoverflow.com/questions/43175710/response-header-not-showing

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