DJANGO报错 禁止访问 403 CSRF验证失败. 请求被中断. 问题如下

img

这是我的django 配置,前端请求设置了header X-CSRFToken带有参数csrfmiddlewaretoken,详情见下图,目前仍未解决

INSTALLED_APPS = [
     ......
     ......
     # TODO 设置django 跨域
    'corsheaders',
]
MIDDLEWARE = [
     ......
    # 添加跨域中间件
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
     ......
    
    ]
# 跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ()
CORS_ALLOW_METHODS = ('DELETE',
                      'GET',
                      'OPTIONS',
                      'PATCH',
                      'POST',
                      'PUT',
                      'VIEW',)

CORS_ALLOW_HEADERS = ('XMLHttpRequest',
                      'X_FILENAME',
                      'accept-encoding',
                      'authorization',
                      'content-type',
                      'dnt',
                      'origin',
                      'user-agent',
                      'x-csrftoken',
                      'x-requested-with',
                      'Pragma',
                      'Access-Control-Allow-Origin',)

这是报错内容

img


这是前端的请求头

img


这是请求数据

img

这是前端请求返回的response

img


我改如何做才能够验证成功

试试补全whitelist

我以前配置的跨域,但是看这个不是crsf的锅吗?


#6使用第三方,django-cors-headers
-pip install django-cors-headers
-注册app:'corsheaders',
-配置中间件:corsheaders.middleware.CorsMiddleware
-setting中配置:
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
CORS_ALLOW_HEADERS = (
    'authorization',
    'content-type',
)

加个中间件可以试下django.middleware.csrf.CsrfViewMiddleware

远程看看可以吗