请求的资源 React Django 错误上不存在“Access-Control-Allow-Origin”标头
Posted
技术标签:
【中文标题】请求的资源 React Django 错误上不存在“Access-Control-Allow-Origin”标头【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource React Django error 【发布时间】:2021-01-23 19:15:51 【问题描述】:CORS 策略已阻止从源“http://localhost:3000”获取“http://localhost:8000/api/product/”的访问权限:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
【问题讨论】:
这个问题不清楚,也没有提供足够的细节来说明您需要什么帮助、您的设置如何等等。 【参考方案1】:我对 Django 没有任何经验,但我知道该错误是因为您必须启用 CORS,这将允许您对呼叫源以外的域(或在不同端口上)进行 api 调用。查看文档以了解如何启用 CORS。
https://pypi.org/project/django-cors-headers/
【讨论】:
【参考方案2】:此错误是由您的 django 后端引起的。以下是您可以解决的问题:
-
像@seddouguim 建议的那样使用 pip 安装 django-cors-headers
在 django settings.py 文件中将“corsheaders”添加到已安装的应用中
在同一 settings.py 文件的底部,您可以添加一个名为
CORS_ORIGIN_WHITELIST=['localhost:3000']
的设置(或您要添加的任何 URL),或者您可以设置 CORS_ORIGIN_ALLOW_ALL = True
(适用于开发环境,但不适用于生产环境)
最后设置CORS_ALLOW_HEADERS = ("x-requested-with", "content-type", "accept", "origin", "authorization", "x-csrftoken")
你应该很高兴
如果您遇到任何其他问题,请随时告诉我
【讨论】:
我已经有了这些设置(除了4),但它并没有解决我的错误,我仍然无法从后端获取数据。以上是关于请求的资源 React Django 错误上不存在“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章
请求的资源上不存在“Access-Control-Allow-Origin”标头。 [Django-React设置]
请求的资源 Django 和 ReactJS 上不存在“Access-Control-Allow-Origin”标头
React JS - 请求的资源上不存在“Access-Control-Allow-Origin”标头。跨域资源错误
Django 向浏览器发送响应它收到此错误:请求的资源上不存在“Access-Control-Allow-Origin”标头
使用 CORS 策略的 Sails、React 和 Axios 错误:请求的资源上不存在“Access-Control-Allow-Origin”标头
Nodejs React CORS 策略:请求的资源上不存在“Access-Control-Allow-Origin”标头