上海最好的网站设计公司,眼查看网站开发语言,盘锦威旺做网站建设,互联网网站定位一、基础概念
cors 跨域资源共享
二、跨域请求-简单请求
满足以下全部条件的请求为 简单请求
1.请求方法如下#xff1a; GET or HEAR or POS
2.请求头仅包含如下#xff1a; Accept、Accept-Language、Content-Language、Content-Type
3.ConTent-Type 仅支持如下三种 GET or HEAR or POS
2.请求头仅包含如下 Accept、Accept-Language、Content-Language、Content-Type
3.ConTent-Type 仅支持如下三种 applicatiion/x-www-form-urlencoded multipart/form-data text/plain
三、简单请求跨域流程
1.请求
请求头中 携带Origin该字段表明自己来自哪个域
2.响应
如果请求头中的Origin在服务器接受范围内则返回如下头
如果服务器不接受此域响应头中不包含Access-Control-Allow-Origin
四、预检请求跨域流程
第一步 先发送OPTIONS请求看响应带不带Access-Control-Allow-Origin
第二步 发真实请求返回响应
1.OPTIONS请求发起携带如下请求头 2.OPTIONS接受响应阶段携带如下响应头 3.主请求阶段 4.主请求响应阶段 项目中基本都是预见请求 Content-Type 都是json请求 不符合简单请求得第三点
Django配置CORS pip3 install django-cors-headers 配置流程
1.INSTALLED_APPS中添加corsheaders
2.MIDDLEWARE 中添加corsheaders.middleware.CorsMiddleware 位置尽量靠前官方建议
‘django.middleware.common.CommonMiddleware’ 上方
3.CORS_ORIGIN_ALLOW_ALL 布尔值 如果为True白名单不启用
白名单-允许的域
4.CORES_ORIGIN_WHITELIST [https://xxxx.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.CORES_PREFLIGHT_MAX_AGE 默认 86400s
特殊的响应头
8.CORS_EXPOSE_HEADERS []
是否要跨域的cookie
9.CORES_ALLOW_CREDENTIALS 布尔值 默认False
后三个不配