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 相关文章推荐
400多行Python代码实现了一个FTP服务器
May 10 Python
python中文编码问题小结
Sep 28 Python
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
python中偏函数partial用法实例分析
Jul 08 Python
Python实现通讯录功能
Feb 22 Python
django 自定义过滤器的实现
Feb 26 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
我们为什么要减少Python中循环的使用
Jul 10 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
Python3 类型标注支持操作
Jun 02 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
解析php取整的几种方式
2013/06/25 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
八大排序算法的Python实现
2021/01/28 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
python模块之time模块(实例讲解)
2017/09/13 Python
浅谈Python中的私有变量
2018/02/28 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
C++面试题目
2013/06/25 面试题
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
优秀党员推荐材料
2014/12/18 职场文书
导游欢迎词范文
2015/01/23 职场文书
雷锋之歌观后感
2015/06/10 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
MySQL 数据库范式化设计理论
2022/04/22 MySQL
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技