gpt4 book ai didi

django - Django 中的 "No ' 访问控制允许来源 ' header is present on the requested resource"

转载 作者:行者123 更新时间:2023-11-28 19:35:11 25 4
gpt4 key购买 nike

我是 django 的新手,将它用作创建用户的应用程序的后端。在前端发布用户名的代码是:

var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('POST', "http://www.local:8000/create_user/", true);
xobj.setRequestHeader("Access-Control-Allow-Origin", "*");
xobj.onreadystatechange = function () {
if (xobj.readyState == 4 && xobj.status == "200") {
console.log(xobj.responseText);
}
}
xobj.send(json);

在后端与 url 关联的函数处理 json 但我收到错误“请求的资源上不存在‘Access-Control-Allow-Origin’ header 。因此不允许访问来源‘http://www.local:54521’”。这个问题的解决方案是什么?我也按照“https://gist.github.com/strogonoff/1369619”中的步骤操作,但问题仍然存在。

最佳答案

这是我在从 Restangular 发送 API 请求时从 Django Rest Framework 收到相同错误时所做的。这样做是将 CORS(跨源资源共享) header 添加到来自 Django Rest Framework 的响应中。没有 CORS header 是错误的原因。

在 Django 项目根文件夹(manage.py 文件所在的位置)中,执行:

pip install django-cors-headers

我尝试使用 virtualenv 但无法让它工作,所以我在没有切换到 virtualenv 的情况下安装了它并安装了它。

安装后,您必须对 django settings.py 进行一些编辑

INSTALLED_APPS = (
...
'corsheaders',
...
)

MIDDLEWARE_CLASSES = (
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
)

CORS_ORIGIN_ALLOW_ALL = True

将以上设置为 true 允许接受所有来源。

引用文献:https://github.com/ottoyiu/django-cors-headers

关于django - Django 中的 "No ' 访问控制允许来源 ' header is present on the requested resource",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com