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

回到顶部