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实现向QQ群成员自动发邮件的方法
Nov 19 Python
详细介绍Python函数中的默认参数
Mar 30 Python
python 爬取微信文章
Jan 30 Python
Python实现简易过滤删除数字的方法小结
Jan 09 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
Python模块的制作方法实例分析
Dec 21 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
基于python实现matlab filter函数过程详解
Jun 08 Python
基于Python下载网络图片方法汇总代码实例
Jun 24 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
Flask搭建一个API服务器的步骤
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
单位速度在实战中的运用
2020/03/04 星际争霸
基于mysql的bbs设计(四)
2006/10/09 PHP
php调整服务器时间的方法
2015/04/03 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python使用webbrowser浏览指定url的方法
2015/04/04 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
python解析多层json操作示例
2019/12/30 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
python解包用法详解
2021/02/17 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
大学生创业策划书
2014/02/02 职场文书
交通事故私了协议书
2014/04/16 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
项目建议书怎么写
2014/05/15 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
高三英语复习计划
2015/01/19 职场文书
神农溪导游词
2015/02/11 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
食品药品安全责任书
2015/05/11 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
详解vue身份认证管理和租户管理
2021/05/25 Vue.js