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中threading模块join函数用法实例分析
Jun 04 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
浅谈Django REST Framework限速
Dec 12 Python
Django读取Mysql数据并显示在前端的实例
May 27 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
Dec 12 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
C3 线性化算法与 MRO之Python中的多继承
Oct 05 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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
paypal即时到账php实现代码
2010/11/28 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
2018/10/29 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
销售经理竞聘书
2014/03/31 职场文书
卖车协议书
2014/04/21 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
商务邀请函
2015/01/30 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
催款律师函范文
2015/05/27 职场文书
python Tkinter模块使用方法详解
2022/04/07 Python