当前位置: 首页 > news >正文

Django-跨域

一、基础概念

cors 跨域资源共享

二、跨域请求-简单请求

满足以下全部条件的请求为 简单请求

1.请求方法如下:

        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

后三个不配

http://www.lryc.cn/news/152781.html

相关文章:

  • wireshark抓包体验
  • Prometheus+grafana安装配置
  • 长连接和短连接有什么区别?
  • Qt应用开发(基础篇)——输入对话框 QInputDialog
  • C++ struct 笔记(超级详细)
  • Vue基础1:生命周期汇总(vue2)
  • Linux串口驱动
  • java反编译工具jd-gui使用
  • Linux 之 shell 脚本
  • 如何去阅读开源的第三方库的源码
  • 浅析Linux虚拟网络技术
  • 设计模式之九:迭代器与组合模式
  • 官方推荐:6种Pandas读取Excel的方法
  • Redis与Mysql区别
  • Black-Box Tuning for Language-Model-as-a-Service
  • 通用的ARM64架构镜像
  • git大文件推送报错
  • RDMA性能优化经验浅谈
  • day 44 | ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
  • 电子科大软件系统架构设计——系统分析与设计概述(含课堂作业、练习答案)
  • 【SpringMVC】@RequestMapping注解(详解)
  • 8.(Python数模)马尔科夫链预测
  • 什么是浏览器缓存(browser caching)?如何使用HTTP头来控制缓存?
  • 谁需要了解学习RPA?什么地方可以使用RPA?
  • Qt各个版本下载及安装教程(离线和非离线安装)
  • 使用爬虫代码获得深度学习目标检测或者语义分割中的图片。
  • 代码随想录算法训练营第39天 | ● 62.不同路径 ● 63. 不同路径II
  • 《网站建设:从规划到发布的全过程详解》
  • 1分钟实现 CLIP + Annoy + Gradio 文搜图+图搜图 系统
  • 用树形dp+状压维护树上操作的计数问题:0902T3