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

如何解决CSRF验证失败?已配置CSRF_TRUSTED_ORIGINS仍无效

解决Django CSRF来源校验失败问题

已经添加了csrf_token和CSRF_TRUSTED_ORIGINS但仍报错,试试这些排查点:

  • 确认CSRF_TRUSTED_ORIGINS的格式:不要在域名末尾加斜杠,确保拼写完全匹配请求的Referer域名。比如你的配置['https://teamsparrowpp-qrgen-production-6a43.up.railway.app']格式正确,但要检查settings.py里有没有拼写错误(比如大小写、多余字符)。

  • 配置代理相关参数:Railway部署的服务通常走平台代理,需要在settings.py里添加:

    USE_X_FORWARDED_HOST = True
    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    

    这能让Django正确识别原始请求的协议和主机,避免代理导致的来源校验偏差。

  • 检查请求的Referer头:打开浏览器开发者工具(F12),在Network标签找到失败的POST请求,查看Request Headers里的Referer字段,确认它和你配置的CSRF_TRUSTED_ORIGINS完全一致(包括https前缀、域名部分)。

  • 清除浏览器缓存和Cookie:旧的CSRF Token缓存可能和新配置冲突,清理后重新测试。

  • 确认ALLOWED_HOSTS包含目标域名:虽然这不是CSRF校验的直接条件,但如果主机不在允许列表里,可能间接引发请求异常,确保settings.py里有:

    ALLOWED_HOSTS = ['teamsparrowpp-qrgen-production-6a43.up.railway.app']
    

内容的提问来源于stack exchange,提问作者Nadia Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:10:25