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发送Email方法实例
Aug 21 Python
以911新闻为例演示Python实现数据可视化的教程
Apr 23 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
python之生产者消费者模型实现详解
Jul 27 Python
pycharm修改file type方式
Nov 19 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
基于Tensorflow:CPU性能分析
Feb 10 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 Python
Python控制台输出俄罗斯方块的方法实例
Apr 17 Python
pytorch 6 batch_train 批训练操作
May 28 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
十天学会php之第十天
2006/10/09 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
2011/11/07 PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
2013/06/06 PHP
php绘制一个扇形的方法
2015/01/24 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
python对常见数据类型的遍历解析
2019/08/27 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
Django 返回json数据的实现示例
2020/03/05 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
python 决策树算法的实现
2020/10/09 Python
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
物流专业求职信
2014/06/30 职场文书
就业推荐表导师评语
2014/12/31 职场文书