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代码(逐级优化)
May 25 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 Python
Python对多属性的重复数据去重实例
Apr 18 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
python中 * 的用法详解
Jul 10 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
python如何写个俄罗斯方块
Nov 06 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
ip签名探针
2006/10/09 PHP
表格展示无限级分类(PHP版)
2012/08/21 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
详解Python中for循环的使用
2015/04/14 Python
Python base64编码解码实例
2015/06/21 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
python代码实现ID3决策树算法
2017/12/20 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
中职应届生会计求职信
2013/10/23 职场文书
物流管理应届生求职信
2013/11/07 职场文书
高中生操行评语大全
2014/04/25 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
世界水日宣传活动总结
2015/02/09 职场文书