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中的urllib模块使用详解
Jul 07 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
python自动识别文本编码格式代码
Dec 26 Python
解决python replace函数替换无效问题
Jan 18 Python
Python列表操作方法详解
Feb 09 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
Mar 24 Python
Pytorch转onnx、torchscript方式
May 25 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
python实现学生通讯录管理系统
Feb 25 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的一些小问题
2010/07/03 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
2017/02/19 Javascript
javaScript中"=="和"==="的区别详解
2018/03/16 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
vue实现文字加密功能
2019/09/27 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
python设置值及NaN值处理方法
2018/07/03 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
python中的协程深入理解
2019/06/10 Python
wxpython绘制音频效果
2019/11/18 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
python3判断IP地址的方法
2021/03/04 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
应聘教师自荐书
2014/06/16 职场文书
欢迎横幅标语
2014/06/17 职场文书
财务会计专业自荐书
2014/06/30 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
导游词之日本富士山
2020/01/06 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang
「月刊Action」2022年5月号封面公开
2022/03/21 日漫