You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复React+Django+Axios中‘部分Cookie滥用SameSite属性’警告

解决Cookie SameSite属性警告及axios配置错误问题

错误原因

你在axios请求配置里加SameSite字段是错误的——Cookie的SameSite属性是由后端在设置Cookie时指定的,前端请求根本没法控制这个属性,所以这么写会直接触发请求错误。Firefox的警告也是因为后端设置Cookie时未指定SameSite值,浏览器使用旧默认策略才弹出提示。

正确解决方案:修改Django后端代码

直接在Django视图的set_cookie方法里添加SameSite参数,根据部署环境选择对应配置:

1. 生产环境(HTTPS部署)

如果网站是HTTPS环境,需要设置SameSite='None',同时必须加上secure=True(浏览器强制要求SameSite=None的Cookie只能通过HTTPS传输):

response.set_cookie(
    key='jwt',
    value=token,
    httponly=True,
    samesite='None',
    secure=True,
    max_age=60*60  # 和JWT的60分钟过期时间对应,可选但建议添加
)

2. 本地开发环境(HTTP)

本地开发一般用HTTP协议,这时候不能用SameSite='None'(浏览器会拒绝保存该Cookie),换成SameSite='Lax'即可,无需添加secure:

response.set_cookie(
    key='jwt',
    value=token,
    httponly=True,
    samesite='Lax',
    max_age=60*60
)

前端axios配置修正

删掉之前添加的SameSite字段,只保留withCredentials: true即可,正确的axios配置如下:

const loginRequest = (values) => {
    axios
      .post(
        "/api/login",
        {
          email: values.email,
          password: values.password,
        },
        {
          withCredentials: true,
          headers: {
            'Content-Type': 'application/json',
          }
        }
      )
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
};

修改完成后,Firefox的SameSite属性警告会消失,请求也不会再报错。

内容的提问来源于stack exchange,提问作者TF Ryzen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:37:08