我有 2 个单独的项目,project A
需要从 project B
访问一些内容。我已经在 project B
上安装了 CORS,但是从 project A
访问其资源仍然会引发以下错误:
Access to XMLHttpRequest at 'http://api.example.com/api/spotify/1IJxbEXfgiKuRx6oXMX87e' from origin 'http://127.0.0.1:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
项目 B 的 CORS 设置为 CORS_ORIGIN_ALLOW_ALL = True
。
我是否缺少其他设置或其他内容?
答案 0 :(得分:-1)
确保您具有 documentation 的以下设置部分,特别是对于 MIDDLEWARE:
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
<块引用>
CorsMiddleware 应该放在尽可能高的位置,尤其是在任何可以生成响应的中间件之前,例如 Django 的 CommonMiddleware 或 Whitenoise 的 WhiteNoiseMiddleware。如果之前没有,它将无法将 CORS 标头添加到这些响应中。
CORS_ORIGIN_ALLOW_ALL
在较新的版本中已重命名为 CORS_ALLOW_ALL_ORIGINS
。