这个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