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处理圆角图片、圆形图片的例子
Apr 25 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Python中文件操作简明介绍
Apr 13 Python
Python3单行定义多个变量或赋值方法
Jul 12 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
python如何实现视频转代码视频
Jun 17 Python
如何使用Python标准库进行性能测试
Jun 25 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
django框架单表操作之增删改实例分析
Dec 16 Python
Python字符串格式化f-string多种功能实现
May 07 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 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
也谈截取首页新闻 - 范例
2006/10/09 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python httplib模块使用实例
2015/04/11 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
幼儿园大班毕业教师寄语
2014/04/03 职场文书
2014年国庆节寄语
2014/09/19 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
详解Python函数print用法
2021/06/18 Python