Django-cors-headers不起作用
我的Django版本是1.8.6。我已将corsheaders文件夹复制到项目文件夹中。我已经点安装django-cors-headers(ver
1.1.0)。这是我的setting.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中添加一些代码吗?谢谢。
回答:
最好在您的应用程序中创建一个代理,该代理将依次调用另一个域并返回数据:
function getLeague() { $.ajax({
url: '/crossdomainData',
type: 'GET',
dataType: 'json',
success: function(data) {
alert('Success');
},
error: function(data) {
alert('Fail');
}
});
}
使用django时,可以导入 。
介绍
Django HTTP代理为Django Web开发框架提供了简单的HTTP代理功能。 此外,它还允许您记录对这些请求的响应并随时回放。
import urllib2 def crossdomainData(request):
url = "http://otherdomain.ashx?username=xxx&password=xxx&sportsBook=xxx&sportsType=xxx&gameType=xxx"
req = urllib2.Request(url)
response = urllib2.urlopen(req)
return HttpResponse(response.read(), content_type="application/json")
以上是 Django-cors-headers不起作用 的全部内容, 来源链接: utcz.com/qa/422595.html