我在 Django 中将 CORS 列入白名单,但跨源请求仍然被阻止
I have CORS whitelisted in Django and the Cross Origin Request is still blocked
我有一个 Vue 前端和一个 Django 后端,并且我在 settings.py 中启用了 CORS,但我仍然遇到这些错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/api/register. (Reason: expected ‘true’ in CORS header ‘Access-Control-Allow-Credentials’).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/api/register. (Reason: CORS request did not succeed). Status code: (null).
这是我的 settings.py 文件的底部:
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
'http://localhost:8080',
'http://localhost:8000',
)
您已将您的端点列入白名单,但对于 CORS,您还需要进行一些正确设置。
- Access-Control-Allow-Origin
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
- Access-Control-Allow-Credentials
您已将来源列入白名单,但 headers、方法和凭据可能尚未在您的 Django 项目上配置。 Headers 和方法的默认值为 django-cors-headers documentation。所以最后一个是 Credentials,您可能想检查您的项目是否需要身份验证。如果是这样,那么 CORS_ALLOW_CREDENTIALS(默认值为 False)是您可能想要查看的那个,如果您的项目需要它,请将其设置为 true。
我有一个 Vue 前端和一个 Django 后端,并且我在 settings.py 中启用了 CORS,但我仍然遇到这些错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/api/register. (Reason: expected ‘true’ in CORS header ‘Access-Control-Allow-Credentials’).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/api/register. (Reason: CORS request did not succeed). Status code: (null).
这是我的 settings.py 文件的底部:
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
'http://localhost:8080',
'http://localhost:8000',
)
您已将您的端点列入白名单,但对于 CORS,您还需要进行一些正确设置。
- Access-Control-Allow-Origin
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
- Access-Control-Allow-Credentials
您已将来源列入白名单,但 headers、方法和凭据可能尚未在您的 Django 项目上配置。 Headers 和方法的默认值为 django-cors-headers documentation。所以最后一个是 Credentials,您可能想检查您的项目是否需要身份验证。如果是这样,那么 CORS_ALLOW_CREDENTIALS(默认值为 False)是您可能想要查看的那个,如果您的项目需要它,请将其设置为 true。