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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
Python函数式编程指南(三):迭代器详解
Jun 24 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
开源Web应用框架Django图文教程
Mar 09 Python
Python开发的实用计算器完整实例
May 10 Python
python实现二分查找算法
Sep 21 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
Python发送邮件实现基础解析
Aug 14 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
分享7个 Python 实战项目练习
Mar 03 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
模拟flock实现文件锁定
2007/02/14 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
Bootstrap每天必学之简单入门
2015/11/19 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
python reduce 函数使用详解
2017/12/05 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
Python返回数组/List长度的实例
2018/06/23 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python groupby 函数 as_index详解
2019/12/16 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
Python中的流程控制详解
2021/02/18 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
企业治理工作自我评价
2013/09/26 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
交通事故检查书范文
2014/01/30 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
售房委托书
2014/08/30 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
幼师小班个人总结
2015/02/12 职场文书
医学生自荐信范文
2015/03/05 职场文书
学生检讨书范文
2019/06/24 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python