在配置axios的时候,怎么才能获取到Cookies中的`csrftoken`?

发布于 2022-09-06 20:42:38 字数 1355 浏览 14 评论 0

配置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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

め可乐爱微笑 2022-09-13 20:42:38

你只能获取当前域名下的cookie,跨域获取不了的

捎一片雪花 2022-09-13 20:42:38

如果写入的cookie没有被设置httpOnly,你在本地chrome devtool -> Application -> Cookies 里面是可以看到cookie的,此时,cookie是可以通过document.cookie读取到的。

深巷少女 2022-09-13 20:42:38

同遇到这个问题了。。好揪心。。。

赤濁 2022-09-13 20:42:38

好像axios已经默认帮你处理了,只要你配置了xsrfCookieName 和 xsrfHeaderName
http://www.wewyy.com/archives...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文