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

使用ngrok发布Django CRUD应用时遇跨域禁止错误求助

解决Django + ngrok登录时的Origin检查失败问题

你遇到的Origin checking failed错误是Django的CSRF中间件触发的,和ALLOWED_HOSTS、CORS_ALLOWED_ORIGINS的作用范围不同,需要单独配置信任源来解决。

解决方案步骤:

  1. 配置CSRF_TRUSTED_ORIGINS
    在Django项目的settings.py中添加ngrok的完整链接(包含协议头https://或http://):

    CSRF_TRUSTED_ORIGINS = ['https://4407-2001-d08-2901-3214-a5a4-7e36-5645-47c1.ngrok-free.app']
    

    由于ngrok每次启动会生成不同的子域名,也可以用通配符匹配所有ngrok-free域名:

    CSRF_TRUSTED_ORIGINS = ['https://*.ngrok-free.app']
    
  2. 重启Django服务器
    修改settings.py后必须重启本地的Django开发服务器,确保新配置生效。

关键说明:

  • ALLOWED_HOSTS仅验证请求的Host头,不处理CSRF的源检查;
  • CORS_ALLOWED_ORIGINS用于跨域AJAX请求的权限控制,和登录表单的CSRF验证无关;
  • Django 3.1及以上版本要求CSRF_TRUSTED_ORIGINS必须包含完整的协议+域名,不能只写域名部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:39:51