Django超级管理员修改用户属性遇403 CSRF验证失败求助
解决Django中Origin不匹配导致的CSRF 403错误
问题核心是Django的CSRF验证机制检测到请求的Origin(https://somedomain.com)不在可信源列表中,因此拦截了请求。按以下步骤解决:
修改项目根目录下的
settings.py,先确认ALLOWED_HOSTS包含你的域名:ALLOWED_HOSTS = ['somedomain.com', 'www.somedomain.com'] # 根据实际域名调整若使用Django 3.1及以上版本,必须配置
CSRF_TRUSTED_ORIGINS,将你的域名(带完整协议)添加进去:CSRF_TRUSTED_ORIGINS = ['https://somedomain.com', 'https://www.somedomain.com']保存配置后,重启Django开发服务器或生产环境的服务。
如果你的项目部署时用了反向代理(比如Nginx),还要确保代理配置中正确传递请求头,让Django能识别真实的Origin:
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host;
内容的提问来源于stack exchange,提问作者M Jafri
相关产品推荐
相关产品推荐

