在配置axios的时候,怎么才能获取到Cookies中的`csrftoken`?
配置Axios.interceptors.request
的时候:
Axios.interceptors.request.use(
config => {
if (
config.method === "post" ||
config.method === "put" ||
config.method === "delete"||
config.method === "get"
) {
}
if (Cookies.get('token')!==undefined) {
config.headers['Authorization']= 'Token '+Cookies.get('token');
}
// 这里我想在Cookies中得到 `csrftoken`,但是会直接跳过,得不到
if (Cookies.get('csrftoken')!==undefined) {
config.headers['x-csrftoken']= Cookies.get('csrftoken'); // 'CSRFToken'
}
return config;
},
error => {
return Promise.reject(error.data.error.message);
}
);
但是释放断点之后,我们可以看到在请求头的Cookie上面有csrftoken
:
我的AxiosConfig代码:
AxiosConfig:{
baseURL: 'http://10.10.10.105:8001/',
responseType: "json",
withCredentials: true, // 这里将会发送 Cookie (with it there are: sessionid, csrftoken)
xsrfCookieName: 'csrftoken', // default: XSRF-TOKEN
xsrfHeaderName: 'x-csrftoken', // default: X-XSRF-TOKEN
headers: {
"Content-Type": "application/json;charset=utf-8"
}
}
是不是与withCredentials: true
有关系呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你只能获取当前域名下的cookie,跨域获取不了的
如果写入的
cookie
没有被设置httpOnly
,你在本地chrome devtool
->Application
->Cookies
里面是可以看到cookie
的,此时,cookie
是可以通过document.cookie
读取到的。同遇到这个问题了。。好揪心。。。
好像axios已经默认帮你处理了,只要你配置了xsrfCookieName 和 xsrfHeaderName
http://www.wewyy.com/archives...