Django----CORS跨域资源共享
-
安装 pip install django-cors-headers
-
配置
1,INSTALLED_APPS 中添加 corsheaders 2,MIDDLEWARE 中添加 corsheaders.middleware.CorsMiddleware 位置尽量靠前,官方建议 ‘django.middleware.common.CommonMiddleware’ 上方 3,CORS_ORIGIN_ALLOW_ALL= True 布尔值 如果为True 白名单不启用 4,CORS_ORIGIN_WHITELIST =[ "https://example.com" ] 5, CORS_ALLOW_METHODS = ( 'DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', ) 6, CORS_ALLOW_HEADERS = ( 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', ) 7, CORS_PREFLIGHT_MAX_AGE 默认 86400s 8, CORS_EXPOSE_HEADERS [] 9, CORS_ALLOW_CREDENTIALS 布尔值, 默认False
默认只需配置12356
-
前后端分离时,使用跨域资源共享可以解决跨域问题
- 在需要验证权限,比如需要验证token时,前端ajax可以:
if (no_empty) { $.ajax({ url: baseUrl + "/xxxx", type: "post", data: JSON.stringify(data), dataType: 'json', //发送ajax前先发送预检请求,将token发去后端校验 beforeSend: function (request) { request.setRequestHeader('authorization', window.localStorage.getItem('token')) }, success: function (data) { } }) }
- 后端接收
token = request.META.get('HTTP_AUTHORIZATION') #拿到后进行验证token