P4T*_*RYK 4 javascript xmlhttprequest reactjs axios
我的 API 响应有问题。我们使用作为后端服务来注册异步用户。
我想检查用户是否已注册,但我没有简单的消息作为响应,但我需要检查标题:
x-operation:operations/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
Run Code Online (Sandbox Code Playgroud)
根据我的要求,我正在使用 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)
})
}
}
Run Code Online (Sandbox Code Playgroud)
问题是处理响应。我需要检查 x 操作,但我的响应中的 x 操作没有出现。
当我在 .then 中执行我的 console.log(response) 时,我的标题为:{} 为空。这是 console.log(response)
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"
Run Code Online (Sandbox Code Playgroud)
如何检查标头中的响应 x 操作,如果我在 axios 响应中没有它,只出现在网络部分?
尝试查看此 SO 帖子:Axios get access to response header fields
您需要确保您的服务器配置为允许客户端访问这些标头,例如:Access-Control-Expose-Headers: x-operation我相信。