请求的资源 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”标头