我已经尝试了django-cors-middleware好几天了,但我无法弄清楚如何设置它。
谁能告诉我,我做错了什么?
以下是我正在使用的测试项目设置。
appone / urls.py
@req
appone / views.py
MySqlDataAdapter mda = new MySqlDataAdapter(comm);
mda.Parameters.AddWithValue("@req",value_goes_here);
appone /模板/ appone /的test.html
urlpatterns = [
url(r'^$', views.test_cors, name='test_cors'),
]
settings.py
def test_cors(request):
return render(request, 'appone/test.html', {})
那就是它!这是每个设置,我通过
运行服务器<html>
<script type="text/javascript">
var url = 'https://www.google.co.jp/?gfe_rd=cr&ei=BuxgWJ-_LIyL8QfIgYe4BQ';
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onload = function() {
var responseText = xhr.responseText;
console.log(responseText);
};
xhr.onerror = function() {
console.log('There was an error!');
};
xhr.send();
</script>
</html>
以下是我在上面运行
所获得的(index):1 XMLHttpRequest无法加载 https://www.google.co.jp/?gfe_rd=cr&ei=BuxgWJ-_LIyL8QfIgYe4BQ。没有 &#39;访问控制允许来源&#39;标题出现在请求的上 资源。起源&#39; http://127.0.0.1:8000&#39;因此是不允许的 访问。
(索引):14出错了!
请求标题
INSTALLED_APPS = [
'corsheaders',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'appone'
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
响应标头
python manage.py runserver
一般
:authority:www.google.co.jp
:method:GET
:path:/?gfe_rd=cr&ei=BuxgWJ-_LIyL8QfIgYe4BQ
:scheme:https
accept:*/*
accept-encoding:gzip, deflate, sdch, br
accept-language:ja,en-US;q=0.8,en;q=0.6
cache-control:no-cache
origin:http://127.0.0.1:8000
pragma:no-cache
referer:http://127.0.0.1:8000/
user-agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
x-client-data:CJe2yQEIpbbJAQjEtskBCPucygEIqZ3KAQ==
答案 0 :(得分:1)
django-cors-middleware
应用允许您控制从不同域访问您的Django应用。它不允许您从Django应用程序控制对google.co.jp的访问。您无法控制google.co.jp返回的标头,因此您无法使用中间件来启用cors。
如果第三方未启用cors或jsonp,则无法使用javascript访问它。您必须在视图中获取内容。