【发布时间】:2016-06-08 00:29:07
【问题描述】:
我的 django 版本是 1.8.6。我已将 corsheaders 文件夹复制到项目文件夹中。我已经 pip install django-cors-headers(ver 1.1.0)。这是我的设置.py:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'MyWebsite_app',
'storages',
'rest_framework',
'corsheaders',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
CORS_ORIGIN_ALLOW_ALL = True
这是我的 jquery:
function getLeague() {
$.ajax({
url: 'http://otherdomain.ashx?username=xxx&password=xxx&sportsBook=xxx&sportsType=xxx&gameType=xxx',
type: 'GET',
dataType: 'json',
success: function(data) {
alert('Success');
},
error: function(data) {
alert('Fail');
}
});
}
在执行 getLeague() 时,它会一直提示“失败”。当我看到控制台时,它显示“XMLHttpRequest 无法加载http://otherdomain.ashx?username=xxx&password=xxx&sportsBook=xxx&sportsType=xxx&gameType=xxx。请求的源上不存在 Access-Control-Allow-Origin 标头”。我应该在 urls.py 还是 view.py 中添加一些代码?谢谢。
【问题讨论】:
-
dataType: 'jsonp',或者您可以发布网址的输出吗? -
@Jai 我也试过 jsonp。但它也不起作用。这是返回示例: {"Msg":"","t":1456383442,"IsFullRefresh":true,"Refresh":[{"UID":"3e9b72f916de06f619ebeb8493f34817","CID":"1dcdbcab"}]}我已经检查了 jsonlin.com,它是一个有效的 json。
-
我不在 django 应用程序上工作,但你这里有一个尾随逗号 `'corsheaders',`。
-
@Jai 谢谢你的回复。但在 django 中,尾随逗号不会有问题。我认为那不是问题
-
尝试从
MIDDLEWARE_CLASSES注释掉'django.middleware.clickjacking.XFrameOptionsMiddleware',
标签: jquery python ajax django django-cors-headers