Django 被CORS策略阻止:飞行前响应中的访问控制允许标头不允许请求标头字段访问控制允许方法
} 异步组件didmount(){ 设置.py ] ] 注册完成使用此localhost URL,但登录无法工作。在此onSubmit方法中,完全工作令牌确实存储在localStorage中,但我尝试使用此令牌进行身份验证,但我收到此错误 令人惊讶的是我的要求http://localhost:8000/auth/users/me 这个网址在邮递员然后我得到数据 你可以在这个链接中看到这张照片 不包括Django 被CORS策略阻止:飞行前响应中的访问控制允许标头不允许请求标头字段访问控制允许方法,django,reactjs,django-rest-framework,Django,Reactjs,Django Rest Framework,} 异步组件didmount(){ 设置.py ] ] 注册完成使用此localhost URL,但登录无法工作。在此onSubmit方法中,完全工作令牌确实存储在localStorage中,但我尝试使用此令牌进行身份验证,但我收到此错误 令人惊讶的是我的要求http://localhost:8000/auth/users/me 这个网址在邮递员然后我得到数据 你可以在这个链接中看到这张照片 不包括访问控制允许标题 访问控制允许来源,访问控制公开标头,访问控制最大年龄,访问控制允许凭据,访问控
访问控制允许标题
访问控制允许来源
,访问控制公开标头
,访问控制最大年龄
,访问控制允许凭据
,访问控制允许方法
,以及访问控制允许标头
都是可用的
请求应该没有它们。此外,还应该在fetch
init选项中将其配置为自己的条目,以允许将cookie发送到其他域
CORS_ORIGIN_ALLOW_ALL = True
您混淆了请求和响应头。应该在响应中发送CORS头,如
访问控制允许方法
,而不是在请求中。
if (!this.state.logged_in) {
this.props.history.push('./login')
}
console.log(user));
if (this.state.logged_in) {
fetch('http://localhost:8000/auth/users/me', {
method: 'GET',
headers: {
"Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type,
Accept, Authorization",
"Access-Control-Allow-Methods": "*",
"Authorization": `Token ${localStorage.getItem('token')}`,
"Content-Type": 'application/x-www-form-urlencoded',
"withCredentials": true,
"Access-Control-Allow-Origin":"*",
'X-Requested-With': 'XMLHttpRequest'
}
})
.then(res => JSON.stringify(res.data))
.then(json => {
this.setState({ username: json.username });
});
}
}
INSTALLED_APPS = [
'authapp',
'rest_framework',
'djoser',
'rest_framework.authtoken',
'corsheaders',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
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',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
CORS_ORIGIN_ALLOW_ALL = True
headers: {
"Authorization": `Token ${localStorage.getItem('token')}`,
"Content-Type": 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest'
},
credentials: 'include'