请求的资源上没有“ Access-Control-Allow-Origin”标头React Django错误

时间:2020-10-08 17:21:26

标签: reactjs django api django-rest-framework django-cors-headers

访问CORS策略已阻止从源“ http:// localhost:3000”获取“ http:// localhost:8000 / api / product /”的访问:没有“ Access-Control-Allow-Origin”标头存在于请求的资源上。如果不透明的响应可以满足您的需求,请将请求的模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。

2 个答案:

答案 0 :(得分:0)

我对Django没有任何经验,但是我知道错误是因为您必须启用CORS,这将允许您对除调用源(或在其他端口)以外的域进行api调用。查看文档以了解如何启用CORS。

https://pypi.org/project/django-cors-headers/

答案 1 :(得分:0)

此错误是由您的Django后端引起的。您可以执行以下操作来解决此问题:

  1. 使用建议的@seddouguim等pip安装django-cors-headers
  2. 在django settings.py文件中将“ corsheaders”添加到已安装的应用程序中
  3. 在同一settings.py文件的底部,您可以添加名为CORS_ORIGIN_WHITELIST=['localhost:3000']的设置(或您要添加的任何URL),也可以设置CORS_ORIGIN_ALLOW_ALL = True(对于dev不适用于生产环境)
  4. 最后设置了CORS_ALLOW_HEADERS = ("x-requested-with", "content-type", "accept", "origin", "authorization", "x-csrftoken")

你应该很好走

如果您遇到任何其他问题,请随时告诉我