如何在 Django 项目中启用 CORS 标头?
当站点 A 想要访问来自另一个站点 B 的内容时,称为跨域请求。由于出于安全原因它被禁用,B 在响应中发送一个 Access-Control-Allow-Origin 标头。默认情况下,不允许域访问托管在另一个域上的 API。如果我们希望允许从托管在另一台服务器上的其他应用程序(比如前端)访问我们的 Django 应用程序中托管的 REST API(比如后端),我们必须启用 CORS(跨源资源共享)。
在 Django 项目中允许 CORS 的步骤 –
1. 使用 PIP 安装 django-cors-headers:
pip install django-cors-headers
2. 将 corsheaders 添加到 settings.py 文件中的已安装应用程序部分:
INSTALLED_APPS = [
...
'corsheaders',
...
]
3.将 corsheaders.middleware.CorsMiddleware 添加到 settings.py 文件中的中间件部分:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
...
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
]
4. 如果要允许所有域的访问,请在 settings.py 文件中将以下变量设置为 TRUE:
CORS_ORIGIN_ALLOW_ALL = True
或者,您可以通过在 settings.py 文件中执行以下操作来指定要授予访问权限的域:
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
'http://localhost:8000',
)
就这样!现在,托管在其他选定服务器上的其他应用程序可以访问您的 API。