Django服务器端跨域
Contents
:::tip 服务器端解决跨域问题: django-cors-headers :::
文档
安装
pip install -i https://pypi.douban.com/simple django-cors-headers
配置
settings.py
- 添加到已安装的应用程序中:
INSTALLED_APPS = [
...
'corsheaders',
...
]
确保添加结尾逗号,否则可能会收到一个逗号ModuleNotFoundError
- 添加一个中间件类来侦听响应:
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CorsMiddleware应该放置在尽可能高的位置,尤其是在可以生成响应的任何中间件之前
- 设置 CORS_ALLOW_ALL_ORIGINS
CORS_ALLOW_ALL_ORIGINS = True
如果为True,则将允许所有来源。限制允许的原点的其他设置将被忽略。默认为False。
将其设置为True可能很危险,因为它允许任何网站向您的网站发出跨域请求。
通常,需要使用CORS_ALLOWED_ORIGINS或 限制允许的来源列表CORS_ALLOWED_ORIGIN_REGEXES。
旧版此设置称为 CORS_ORIGIN_ALLOW_ALL,仍然可以用作别名,新名称优先。