Contents

Django服务器端跨域

Contents

:::tip 服务器端解决跨域问题: django-cors-headers :::

文档

django-cors-headers

安装

pip install -i https://pypi.douban.com/simple django-cors-headers

配置

settings.py

  1. 添加到已安装的应用程序中:
INSTALLED_APPS  = [ 
    ... 
    'corsheaders'
    ... 
]

确保添加结尾逗号,否则可能会收到一个逗号ModuleNotFoundError

  1. 添加一个中间件类来侦听响应:
MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]

CorsMiddleware应该放置在尽可能高的位置,尤其是在可以生成响应的任何中间件之前

  1. 设置 CORS_ALLOW_ALL_ORIGINS
CORS_ALLOW_ALL_ORIGINS = True

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

将其设置为True可能很危险,因为它允许任何网站向您的网站发出跨域请求。

通常,需要使用CORS_ALLOWED_ORIGINS或 限制允许的来源列表CORS_ALLOWED_ORIGIN_REGEXES。

旧版此设置称为 CORS_ORIGIN_ALLOW_ALL,仍然可以用作别名,新名称优先。