【发布时间】:2020-06-12 10:35:12
【问题描述】:
我尝试从 Vue js coreui 主题调用外部 api,但无法在 response.headers 中接收 set-cookie
代码如下
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.headers.common['Access-Control-Allow-Credentials'] = true;
axios.defaults.headers.common['Access-Control-Allow-Origin'] = 'http://127.0.0.1:8000';
axios.defaults.headers.common['Access-Control-Allow-Headers'] = 'X-PINGOTHER, Content-Type';
axios.defaults.headers.common['Access-Control-Expose-Headers'] = 'Access-Token, Uid';
axios.defaults.headers.common['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS';
axios
.post('url',
{
par : '20'
}, {
withCredentials: true,
})
.then(function(response){
console.log(response);
})
.catch(error => console.log(error))
我都试过了
axios.defaults.headers.common['Access-Control-Expose-Headers'] = 'Access-Token, Uid';
这个和
withCredentials: true,
响应正确,但标题不同
在开发者工具中如下: developer tools response header
注意: 在 Postman 上,我得到了 set-cookie,但在应用程序上却没有得到响应。
我尝试了所有与 Axios 和 Vue js 相关的东西,但仍然没有在标题中获得 set-cookies。
【问题讨论】:
-
Access-Control-标头是 response 标头;它们必须在服务器上设置。我建议阅读例如developer.mozilla.org/en-US/docs/Web/HTTP/CORS -
我在服务器上浏览了这个链接,我们已经设置了响应标头,因此它来自邮递员但不在应用程序中。那是我的问题。
-
你能在代码 sandbox.io 上生成工作示例吗?
标签: javascript jquery vue.js axios