gpt4 book ai didi

javascript - CORS header 不适用于 Django 项目

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

我在另一个网站上有一个 iframe。我可以控制该 iframe 的代码,但不能控制网站本身,并且它的来源不是我的网站(它是从另一个域加载的)。在 iframe 中,对其他网站进行了多个 ajax API 调用,并对我自己的基于 Django 构建的网站发出了一个 GET 请求。但是,此调用返回错误,代码为 0。该请求甚至没有记录在网络浏览器选项卡中(我使用 Firefox)。

在 Django 网站上运行相同的内容效果很好,所以显然问题出在跨源请求中。我添加并启用了 django-cors-headers 模块,但它仍然不起作用。抛出同样的错误,但什么也没发生。

我的 Django 版本是 1.10.5。通过 pip 安装 Python3.5 的模块。整个事情都在 VPS 上进行。设置:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'install',
'account',
'corsheaders',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
CSRF_TRUSTED_ORIGINS = (
'https://widget.insales.ru',
)

请求:

$.ajax({
type: "GET",
url: "http://project_url/scripty",
data: {
"data": JSON.stringify(r)
},
dataType: 'text/plain',
success: function(data){
console.log(JSON.stringify(r));
console.log("Success!");
console.log(data);
},
error: function(xhr, status, errorThrown){
console.log(JSON.stringify(r));
console.log("Status: " + status + "\nThrown: " + errorThrown);
console.log(xhr);
}
});

不确定要添加什么,请在评论中询问。

我做错了什么还是我对事物的理解有问题?

最佳答案

问题出乎意料地轻松解决了。很长一段时间后,我终于尝试从 Chrome 发出相同的请求,发现一直以来我一直在尝试从安全的地方调用不安全的资源。这意味着 iframe 加载的是 https,请求是使用 http 发出的。为请求的站点激活 SSL 解决了该问题。

关于javascript - CORS header 不适用于 Django 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44573882/

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