cors头在我的django服务器上启用cors。我的setting.py
是这样的。
CORS_ORIGIN_ALLOW_ALL= True
CORS_ALLOW_CREDENTIALS = True
此外,我已经将corsheaders
添加到INSTALLED_APPS
中,并且我的MIDDLEWARE
与此类似
MIDDLEWARE = [
'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',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
]。我设置了一个非常简单的视图,看起来像这样。
def get(self, request):
response = HttpResponse("hi")
response['Set-Cookie'] = ('food=bread; Path=/; max_age=10000')
print(response._headers)
return response
控制台上的标题是这样的。
{'set-cookie': ('Set-Cookie', 'food=bread; drink=water; Path=/; max_age=10000'), 'content-type': ('Content-Type', 'text/html; charset=utf-8')}
当我在浏览器中调用我的api时,cookie已经设置好,一切都很好,但当我在响应体中使用axios for ajax时,没有任何东西与我的cookie相似。我的javasctipt代码我喜欢这个。
axios.get('http://37.130.202.188:13434/users/test/',
{withCredentials: true,
})
.then(function (response) {
console.log(response);
});
我用这个命令运行我的服务器
python manage.py runserver
对这种头痛的每一种反应都将不胜感激。
我找到了答案。就像这个问题一样,在http响应的头中设置的cookie在Javascript中是不可访问的,它们会自动保存在浏览器中。