Django通过设置CORS解决跨域问题
作者:文渊博客 发布时间:2023-05-22 14:18:41
标签:Django,CORS,跨域
一、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的操作
来源:https://www.wenyuanblog.com/blogs/django-cors-settings.html


猜你喜欢
- 最近接触了很多数据库的东西,本来是一直接触的是sql server,不过由于项目需要就开始对mysql进行了连接。下面就让我这个菜鸟浅谈下经
- 开发时,通常打开Debug模式会快速定位开发时的一些问题。项目开始部署时,关闭Debug模式,url.py路由静态文件和图片写法:# url
- 问题一: 在anconda里面如何创建新的python环境(也就是更换新的python版本)1.先打开anconda软件,创建需要的环境2.
- readlines的帮助信息>>> fr=open('readme.txt')>>> h
- 阅读上一篇:垂直栅格与渐进式行距(上) 新问题来也匆匆,去也“冲冲”。距上次发布垂直栅格与渐进式行距(上)发布,已经不知不觉过去了
- 二元运算二元运算是指由两个元素形成第三个元素的一种规则,例如数的加法及乘法;更一般地,由两个集合形成第三个集合的产生方法或构成规则称为二次运
- 1. 模型1.1. 模型定义type User struct { gorm.Model
- 在学习asp过程中相信很多初学者对Sub与Function的用法有些疑惑,好像它们没什么区别都可以使用。呵呵,看了本文的介绍您就可以了解了S
- 今天看了一个优化案例觉的挺有代表性,这里记录下来做一个标记,来纪念一下随便的字段定义的问题。回忆一下,在表的设计中很多人习惯的把表的结构设计
- 1.怎么样查看数据库字符集 [A]数据库服务器字符集select * from nls_database_parameters,其来源于pr
- 一、MySQL中如何表示当前时间?其实,表达方式还是蛮多的,汇总如下:CURRENT_TIMESTAMPCURRENT_TIMESTAMP(
- 客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下。 服务器接受到
- itertools.product:类似于求多个可迭代对象的笛卡尔积。使用的形式是:itertools.product(*iterables
- 工作需要开始学Perl,下载个Window版(5.16)的: 下载链接 http://www.activestate.com/activep
- 本文实例为大家分享了JavaScript实现简单计算器的具体代码,供大家参考,具体内容如下此例为简单的计算器:代码示例:<!DOCTY
- 前提搭建钉钉应答机器人,需要先准备或拥有以下权限:钉钉企业的管理员或子管理员(如果不是企业管理员,可以自己创建一个企业,很方便的)有公网通信
- 场景当我提交了本次修改到本地和远程分支后,发现我本次提交还少了一些修改内容,或者说本次修改是完全错误的,然而也push到远程仓库去了。如何回
- 1、配置安装源# 安装dnf install http://mirrors.ustc.edu.cn/mysql-repo/mysql80-c
- 如下所示:#获取一个值在某个区间的指定倍数的值方法#1# print([i for i in range(1,101) if i%5==0]
- 为表和字段取别名阿文之前介绍过MySQL的分组查询、集合函数查询和嵌套子查询,在编写SQL语句时有的地方使用到AS关键字为查询结果中的某一列