📜  反应 axios 从响应中获取 cookie - Javascript (1)

📅  最后修改于: 2023-12-03 15:07:23.174000             🧑  作者: Mango

反应 axios 从响应中获取 cookie - Javascript

在某些情况下,我们需要在 Axios 响应中获取 cookie,以便保存用户的认证状态或进行其他操作。本文将介绍如何在 Axios 中获取 cookie。

首先,我们需要在 Axios 中启用 withCredentials 选项,以便将 cookie 发送到服务器并从响应中接收 cookie。

axios.defaults.withCredentials = true;

接下来,在 Axios 的响应拦截器中,我们可以获取响应头中的 cookie。

axios.interceptors.response.use(
  (response) => {
    const cookies = response.headers['set-cookie'];
    // 处理 cookies
    return response;
  },
  (error) => {
    return Promise.reject(error);
  }
);

在这个拦截器中,我们可以通过访问 response.headers 中的 'set-cookie' 属性来获取响应头中的 cookie。注意,这是一个数组,因为响应头可能包含多个 cookie。我们可以在这里处理所有的 cookie。

有一些细节需要注意:

  • 在 withCredentials 启用的情况下,浏览器将不允许通过 XMLHttpRequest.withCredentials 设置 cookie 的值。必须将 cookie 设置在服务器端。
  • 如果服务器返回的响应头中没有包含 'set-cookie' 属性,那么我们将无法获取 cookie。

总结

在 Axios 中获取 cookie 非常简单。只需要启用 withCredentials 选项并在响应拦截器中访问响应头中的 'set-cookie' 属性即可。

axios.defaults.withCredentials = true;

axios.interceptors.response.use(
  (response) => {
    const cookies = response.headers['set-cookie'];
    // 处理 cookies
    return response;
  },
  (error) => {
    return Promise.reject(error);
  }
);

希望这篇文章能够帮助你在 Axios 中获取 cookie。