什么是CORS ?
CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种跨域访问的机制,可让Ajax实现跨域访问。
其实,在服务器的response header中,加入“Access-Control-Allow-Origin: *”便可支持CORS,很是的简单,apache/nginx等怎么配置,见参考文档。
django-cors-headers 的作用 ?
将跨源资源共享 (CORS) 标头添加到响应的 Django 应用程序。这允许从其他来源向您的 Django
应用程序发出浏览器内请求。
1. 安装django-cors-headers
pip install django-cors-headers
2. 添加到应用程序中
INSTALLED_APPS = [
... ,
"corsheaders" ,
... ,
]
3. 在中间键中监听响应
CorsMiddleware 需要放在第一位,不放在第一位,可能会造成某些请求没有添加CORS。
MIDDLEWARE = [
"corsheaders.middleware.CorsMiddleware" ,
... ,
]
4. 设置访问白名单
# CORS_ORIGIN_ALLOW_ALL为True, 指定所有域名(ip)都可以访问后端接口, 默认为False
CORS_ORIGIN_ALLOW_ALL = True
5. 设置允许携带cookie
CORS_ALLOW_CREDENTIALS = True
6. 默认请求头列表。
CORS_ALLOW_HEADERS = [
"accept" ,
"accept-encoding" ,
"authorization" ,
"content-type" ,
"dnt" ,
"origin" ,
"user-agent" ,
"x-csrftoken" ,
"x-requested-with" ,
]