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

Django对接Vue时CORS配置失效引发跨域禁止错误求助

问题分析与解决方案

你遇到的Origin checking failed错误并非CORS配置问题(从响应头的access-control-allow-origin: http://127.0.0.1:8090可以看出,CORS已经生效),而是Django 4.0+版本新增的CSRF可信源校验机制触发的拦截——当处理登录这类带CSRF保护的POST请求时,Django会校验请求的Origin是否在可信源列表中。

解决步骤:

  1. 在settings.py中添加CSRF_TRUSTED_ORIGINS配置,将前端域名加入可信列表:
# settings.py
CSRF_TRUSTED_ORIGINS = [
    "http://127.0.0.1:8090",
]

如果前端使用HTTPS协议,需替换为对应的https://地址。

  1. 确保中间件顺序正确(你的当前配置已符合要求,可再次确认):

    • corsheaders.middleware.CorsMiddleware必须放在django.middleware.common.CommonMiddleware之前,保证CORS头先被处理。
  2. 重启Django服务,使配置生效。

补充说明:

  • CORS_ALLOW_ALL_ORIGINS = True仅控制浏览器端的CORS跨域许可,和Django后端的CSRF可信源校验是两个独立的机制,二者需要分别配置。
  • 若后续前端域名变更,需同步更新CSRF_TRUSTED_ORIGINS中的地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:37:19