Django通过设置CORS解决跨域问题


Posted in Python onNovember 26, 2020

一、Ajax 跨域请求

Ajax 请求一个目标地址为非本域(协议、主机、端口任意一个不同)的 web 资源。

前端
http://192.168.10.50:8080
后端
http://192.168.10.50:8000

Ajax 跨域请求保护的作用:防止跨站的攻击。

二、如何解决跨域的访问

当我们在现实当中有需要跨域访问资源,有两种解决方案:

  • 前端解决:jsonp
  • 后端解决(Django):CORS 专门解决方案

这篇文章主要介绍使用 Django 框架进行开发时的后端解决方案。

三、Django 解决跨域问题

Django 框架中通过 django-cors-headers 这个模块解决。

1. 安装

pip install django-cors-headers

2. 注册应用

注册到 settings 的 INSTALLED_APPS 中。

INSTALLED_APPS = (
 ...
 'corsheaders',
 ...
)

3. 添加到中间件

添加到 settings 的 MIDDLEWARE 中,一般放在 django.middleware.csrf.CsrfViewMiddleware 前面。

MIDDLEWARE = [
 'corsheaders.middleware.CorsMiddleware',
 ...
]

4. 添加白名单

添加允许访问的白名单,凡是出现在白名单的域名都可以访问后端接口。

# 添加 CORS 配置
# 1. 设置白名单
CORS_ORIGIN_WHITELIST = (
 '127.0.0.1:8080',
 'localhost:8080',
 'http://192.168.10.50:8080', # 凡是出现在白名单中的域名,都可以访问后端接口
)
# 2. 设置 CORS Cookie
CORS_ALLOW_CREDENTIALS = True # 指明在跨域访问中,后端是否支持对cookie的操作

到此这篇关于Django 通过设置CORS解决跨域问题的文章就介绍到这了,更多相关Django  CORS跨域内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python命令行参数解析OptionParser类用法实例
Oct 09 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
python迭代器常见用法实例分析
Nov 22 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
python调用百度API实现人脸识别
Nov 17 Python
Django分页器的用法你都了解吗
May 26 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
Nov 26 #Python
python模拟点击在ios中实现的实例讲解
Nov 26 #Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 #Python
python 实现超级玛丽游戏
Nov 25 #Python
python 制作简单的音乐播放器
Nov 25 #Python
python中绕过反爬虫的方法总结
Nov 25 #Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 #Python
You might like
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
php提取微信账单的有效信息
2018/10/01 PHP
JS判定是否原生方法
2013/07/22 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
详解js的六大数据类型
2016/12/27 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
js实现导航跟随效果
2018/11/17 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
微信小程序的引导页实现代码
2020/06/24 Javascript
python pdb调试方法分享
2014/01/21 Python
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python中生成Epoch的方法
2017/04/26 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python实现AES加密与解密
2019/03/28 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Django之form组件自动校验数据实现
2020/01/14 Python
python构造函数init实例方法解析
2020/01/19 Python
python 回溯法模板详解
2020/02/26 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
什么是数组名
2012/05/10 面试题
建筑设计师岗位职责
2013/11/18 职场文书
大班开学家长寄语
2014/04/04 职场文书
预备党员转正材料
2014/12/19 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书