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人脸识别初探
Dec 21 Python
Python实现的栈(Stack)
Jan 26 Python
python批量导入数据进Elasticsearch的实例
May 30 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
Python中如何添加自定义模块
Jun 09 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Jul 14 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 Python
python 爬取华为应用市场评论
May 29 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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和ACCESS写聊天室(七)
2006/10/09 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
python连接mongodb密码认证实例
2018/10/16 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
详解python中docx库的安装过程
2019/11/08 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
大学生毕业自我评价范文分享
2013/11/11 职场文书
员工拾金不昧表扬信
2014/01/09 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
公司合作协议书范本
2014/04/18 职场文书
供用电专业求职信
2014/07/07 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
财政局个人年终总结
2015/03/03 职场文书