我有一个正在使用的 Django 应用程序corsheaders
包及其在 settings.py 中如下所示:
INSTALLED_APPS = [ ..., corsheaders, ...]
...
MIDDLEWARE = [
# on top
"corsheaders.middleware.CorsMiddleware",
"django.middleware.common.CommonMiddleware",
...
]
...
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
当我尝试做一个PATCH
之后在 Google Chrome 上请求OPTIONS
方法我得到这个:
缺少访问控制允许方法PATCH
并且下一个请求失败并出现 CORS 方法错误。
但我在 Firefox 上尝试了相同的方法,它按预期工作。
看来你需要明确设置允许的来源,不使用通配符,即*
:
CORS_ALLOWED_ORIGINS = [
"https://example.com",
"https://sub.example.com",
"http://localhost:8080",
"http://127.0.0.1:9000"
]
另外,设置所有 HTTP 动词:
CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
]
阅读更多:
- https://pypi.org/project/django-cors-headers/
- Chrome 跨域 PATCH 请求不起作用
-
CORS_ALLOW_ALL_ORIGINS = True
or CORS_ORIGIN_ALLOW_ALL = True
(旧名称)等于使用通配符*
: L131 django-cors-headers middleware.py 文件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)