django使用csrf防止跨域报错
Posted Bill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django使用csrf防止跨域报错相关的知识,希望对你有一定的参考价值。
下载依赖
pip install django-cors-headers
注册应用
INSTALLED_APPS = [
...
\'corsheaders\' ,
...
]
添加中间件
CorsMiddleware
应放在尽可能高的,特别是可以产生如Django的回应任何中间件之前CommonMiddleware
或白噪声的WhiteNoiseMiddleware
。
MIDDLEWARE = [
...
\'corsheaders.middleware.CorsMiddleware\' ,
# 下面这句是默认的第一句
\'django.middleware.common.CommonMiddleware\' ,
...
]
为视图添加注解
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def user_login(request):
...
额外的设置
# settings.py
# 跨域django-cors-headers配置
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
# 授权进行跨站点HTTP请求的来源列表
CORS_ALLOW_ORIGINS = [
\'*\'
]
# 实际请求所允许的HTTP动词列表。默认为
CORS_ALLOW_METHODS = [
\'DELETE\' ,
\'GET\' ,
\'OPTIONS\' ,
\'PATCH\' ,
\'POST\' ,
\'PUT\' ,
]
# 发出实际请求时可以使用的非标准HTTP标头的列表。默认为:
CORS_ALLOW_HEADERS = [
\'accept\' ,
\'accept-encoding\' ,
\'authorization\' ,
\'content-type\' ,
\'dnt\' ,
\'origin\' ,
\'user-agent\' ,
\'x-csrftoken\' ,
\'x-requested-with\' ,
]
更多配置信息
以上是关于django使用csrf防止跨域报错的主要内容,如果未能解决你的问题,请参考以下文章
Access to Image at 'file:///Users canvas本地图片跨域报错解决方案
跨域报错解决方案Access to XMLHttpRequest at ‘http://xxx.com/xxx‘ from origin ‘null‘ has been blocked by