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

后三个不配

相关推荐
winfredzhang2 分钟前
Python 实战:用 wxPython 写一个 MD5 文件查重清理工具
python·sqlite·json·wxpython·md5·预览·查重
装不满的克莱因瓶6 分钟前
了解不同机器学习模型的分类
人工智能·python·算法·机器学习·ai·分类·数据挖掘
小江的记录本25 分钟前
【Spring全家桶】Spring Cloud 2023.0.x:配置中心:Nacos Config、Apollo(附《思维导图》+《面试高频考点清单》)
java·spring boot·后端·python·spring·spring cloud·面试
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月7日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能
smith成长之旅1 小时前
08 | Mem0 框架分析: BM25 的 Sigmoid 归一化
数据库·python·算法
DogDaoDao1 小时前
【第 04 篇】列表与元组 —— 序列类型核心详解
人工智能·python·深度学习·神经网络·机器学习·conda·numpy
idingzhi1 小时前
A股量化策略日报(2026年06月07日)
python
xingpanvip1 小时前
使用 Webwright 在 CSDN 自动发文:Python 浏览器自动化实践
开发语言·python·自动化
armwind1 小时前
openISP学习7-CCM — Color Correction Matrix(色彩校正矩阵)
python·学习·矩阵
艺杯羹1 小时前
零成本!3步设置Windows动态壁纸,免费无广告
python