axios in response.headers不显示x操作

时间:2017-11-22 17:48:05

标签: javascript reactjs xmlhttprequest axios

我的API响应有问题。我们使用后端服务来注册异步用户。

我想检查用户是否已注册,但我没有简单的消息作为回复,但我需要检查标题:

的x操作:操作/ e18f9239-B66B-4a81-a7cb-622a40326057 如果用户已在此电子邮件中注册,此标头将告诉我是否将api请求发送到另一个端点。

在网络部分,我有以下响应标题:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:8080
Content-Length:0
Date:Wed, 22 Nov 2017 17:33:20 GMT
Server:Kestrel
Vary:Origin
x-operation:operations/e18f9239-b66b-4a81-a7cb-622a40326057
x-resource:account

根据我的要求,我正在使用axios库(react-app)

export function signupUser({ email, password }) {
  return function(dispatch) {
    axios.post(`${API_URL}/sign-up`, { email, password })
    .then(response => {
      console.log('response', response)
      // browserHistory.push('/signin');
    })
    .catch((error) => {
      // dispatch(authError(error.data.error))
      console.log('error', error)
    })
  }
}

问题是处理响应。我需要检查x操作,但我的响应中的x操作没有出现。

当我在.then中执行我的console.log(响应)时,我有标题:{}为空。 这是console.log(响应)

response 
{data: "", status: 202, statusText: "Accepted", headers: {…}, config: {…}, …}
config:
{transformRequest: {…}, transformResponse: {…}, timeout: 0, xsrfCookieName: "XSRF-TOKEN", adapter: ƒ, …}
data:""
headers:{}
request:XMLHttpRequest {readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, onreadystatechange: ƒ, …}
status:202
statusText:"Accepted"

如果我在axios响应中没有它,我如何检查标题中的响应x操作,只出现在网络部分?

1 个答案:

答案 0 :(得分:1)

试着看看这篇SO帖子:Axios get access to response header fields

您需要确保您的服务器配置为允许客户端访问这些标头,例如:Access-Control-Expose-Headers: x-operation我相信。