这个Vue资源的格式header是不是错了?
Is the format of this Vue resource header wrong?
这是 API 规格:
POST /user/v1/profile:
headers: istaging-token: USER_TOKEN
body:{
buildingLimit: 10
}
这就是我在代码中的做法:
api.updateUser = (formData, sessionToken) => {
return new Promise((resolve, reject) => {
const URLEnd = '/users/profile'
const options = api.apiTimeout
options.headers = { 'istaging-token': sessionToken }
Vue.http.post(api.serverURL + api.apiVersion + URLEnd, formData, options).then(resp => {
if (resp.status === 200) resolve(resp)
else reject(resp)
}, err => {
console.log('update user error: ', err)
reject(err)
})
})
}
但是我得到这个错误:
Failed to load https://vrbackend.leanapp.cn/api/v1/users/profile:
Request header field istaging-token is not allowed by
Access-Control-Allow-Headers in preflight response.
我的 headers 格式有问题吗?或者这是服务器问题?
Is there something wrong with the formatting of my headers? Or this is a server issue?
这是服务器问题。
检查开发人员工具的网络选项卡。预检 OPTIONS
请求未在 Access-Control-Expose-Headers
中找到 istaging-token
,因此它拒绝访问它。
解决方法:服务器必须return包含istaging-token
.
的Access-Control-Expose-Headers
详情:
- 更多关于
Access-Control-Expose-Headers
header 及其工作原理的信息。
- 更多关于 CORS and the preflight request。
这是 API 规格:
POST /user/v1/profile:
headers: istaging-token: USER_TOKEN
body:{
buildingLimit: 10
}
这就是我在代码中的做法:
api.updateUser = (formData, sessionToken) => {
return new Promise((resolve, reject) => {
const URLEnd = '/users/profile'
const options = api.apiTimeout
options.headers = { 'istaging-token': sessionToken }
Vue.http.post(api.serverURL + api.apiVersion + URLEnd, formData, options).then(resp => {
if (resp.status === 200) resolve(resp)
else reject(resp)
}, err => {
console.log('update user error: ', err)
reject(err)
})
})
}
但是我得到这个错误:
Failed to load https://vrbackend.leanapp.cn/api/v1/users/profile: Request header field istaging-token is not allowed by Access-Control-Allow-Headers in preflight response.
我的 headers 格式有问题吗?或者这是服务器问题?
Is there something wrong with the formatting of my headers? Or this is a server issue?
这是服务器问题。
检查开发人员工具的网络选项卡。预检 OPTIONS
请求未在 Access-Control-Expose-Headers
中找到 istaging-token
,因此它拒绝访问它。
解决方法:服务器必须return包含istaging-token
.
Access-Control-Expose-Headers
详情:
- 更多关于
Access-Control-Expose-Headers
header 及其工作原理的信息。 - 更多关于 CORS and the preflight request。