django跨域访问

环境要求

        

支持 Python 3.7 到 3.11。

支持 Django 3.2 到 4.1。

设置:

安装库,从pip安装

python -m pip install django-cors-headers

然后将其添加到您安装的应用程序中(添加子应用):

      

INSTALLED_APPS  =  [ 
    ... , 
    "corsheaders" , 
    ... , 
]

确保添加尾随逗号,否则您可能会收到ModuleNotFoundError (请参阅此博客文章)。

您还需要添加一个中间件类来监听响应:

MIDDLEWARE  =  [ 
    ... , 
    "corsheaders.middleware.CorsMiddleware" , 
    "django.middleware.common.CommonMiddleware" , 
    ... , 
]

CorsMiddleware应放置在尽可能高的位置(中间件列表第一位即可),尤其是在任何可以生成响应的中间件之前,例如 Django 的

或 Whitenoise 的WhiteNoiseMiddleware。如果不是之前,它将无法将 CORS 标头添加到这些响应中。

配置:

在 Django 设置中配置中间件的行为。您必须至少设置以下三个设置之一:

  • CORS_ALLOWED_ORIGINS
    CORS_ALLOWED_ORIGIN_REGEXES
    CORS_ALLOW_ALL_ORIGINS

ur列表

Example:

CORS_ALLOWED_ORIGINS = [
    "https://example.com",
    "https://sub.example.com",
    "http://localhost:8080",
    "http://127.0.0.1:9000",
]

正则 

Example:

CORS_ALLOWED_ORIGIN_REGEXES = [
    r"^https://\w+\.example\.com$",
]

CORS_ALLOW_ALL_ORIGINS: bool

CORS_ALLOW_ALL_ORIGINS = True #如果True,将允许所有来源。其他限制允许来源的设置将被忽略。默认为False。

将此设置为True可能很危险,因为它允许任何网站向您的网站发出跨域请求。通常,您需要使用CORS_ALLOWED_ORIGINS或CORS_ALLOWED_ORIGIN_REGEXES限制允许的来源列表。

以前此设置称为CORS_ORIGIN_ALLOW_ALL,它仍然作为别名使用,新名称优先。

官网链接:django-cors-headers · PyPI

个人踩坑:

配置好了后死活跨不了域,最后发现是运行的manger文件路径不对。

项目启动后可以留意一下根据那个配置文件启动 ,注意细节,over。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值