DRF项目,是一个前后端分离的Web框架。

本项目中,我们前端采用的是VUE框架。

前后端分离的情况就会出现一个问题,前端的Ajax请求无法请求到后端API(接口)。

那么,为什么会出现这种问题呢?

因为,浏览器的同源策略不允许,不同源的脚本(网站代码Ajax)在没有经过明确授权的情况下,去读写对方的资源。

既然提到了同源策略,我们就避免不了的需要了解一下子什么叫做,什么又叫做同源、同源策略

源:指的是在url中的协议、域名、端口号;

同源:当两个url的协议、域名、端口号都一致,那么,我们就称这两个url是同源的。

同源策略:指的是浏览器的一个安全功能,其作用就是让防止两个非同源的url进行通信。

既然,我们明确了问题的所在,那么,我们就要开始解决问题了。

这里,我们就需要使用到跨域来实现非同源之间url进行通信。

我们采用跨域的方式是跨域资源共享CORS(Cross-origin resource sharing)

既然,我们知道了解决问题的方式,那么,我们就要将用代码来实现了。

首先,我们需要安装第三方模块,配合Django程序进行CORS的配置。

pip install django-cors-headers

然后,我们需要在项目的配置文件中,进行配置。

INSTALLED_APPS = [
... # 注册CORS跨域访问子应用
'corsheaders', ]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...
]

这里,还需要配置请求的白名单。

# CORS
CORS_ORIGIN_WHITELIST = (
'http://127.0.0.1:8080',
'http://localhost:8080',
'http://www.meiduo.site:8080',
'http://www.meiduo.site:8000'
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie

当我们,完成了以上操作后,就解决掉了浏览器的同源策略问题啦。

DRF项目之解决浏览器同源策略问题的更多相关文章

  1. 浏览器同源策略及Cookie的作用域

    from:https://blog.csdn.net/wang379275614/article/details/53333054 如题,本文主要介绍两方面内容:首先简单介绍浏览器的同源策略与其带来的 ...

  2. jsonp突破浏览器同源策略

    jsonp突破浏览器同源策略 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  3. [js]浏览器同源策略(same-origin policy)

    浏览器的同源策略 浏览器同源政策及其规避方法 什么是同源策略 A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源".所谓"同源"指的是" ...

  4. django csrf_protect及浏览器同源策略

    1.django在检测post行为时会有诸多的限制. 为了防止跨域请求伪造安全 参考:http://www.qttc.net/201209211.html   https://www.cnblogs. ...

  5. 浏览器同源策略,跨域请求jsonp

    浏览器的同源策略 浏览器安全的基石是"同源政策"(same-origin policy) 含义: 1995年,同源政策由 Netscape 公司引入浏览器.目前,所有浏览器都实行这 ...

  6. 浏览器同源策略与ajax跨域方法汇总

    原文 什么是同源策略 如果你进行过前端开发,肯定或多或少会听说过.接触过所谓的同源策略.那么什么是同源策略呢? 要了解同源策略,首先得理解“源”.在这个语境下,源(origin)其实就是指的URL.所 ...

  7. [oldboy-django][2深入django]浏览器同源策略 + JSONP + cros

    浏览器的同源策略: - 同源: 同方法,同域名,同端口 http://www.baidu.com:8000 http: 方法 www.baidu.com: 域名 8000: 端口 - 定义 网上解析非 ...

  8. 踩坑录- Spring Boot - CORS 跨域 - 浏览器同源策略

    1.解决办法,创建一个过滤器,处理所有response响应头 import java.io.IOException; import javax.servlet.Filter; import javax ...

  9. 【Python-Django】浏览器同源策略

    1995年,同源政策由 Netscape 公司引入浏览器.目前,所有浏览器都实行这个政策. 同源策略是浏览器的一个安全功能,不同源的客户端脚本(js文件)在没有明确授权的情况下,不能读写对方资源.只有 ...

随机推荐

  1. 015.CI4框架CodeIgniter数据库操作之:Query带参数查询数

    01.我们在Models中写数据库的操作.具体的查询代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class U ...

  2. chrome警告:Synchronous XMLHttpRequest on the main thread

    警告 原因 ajax同步请求会触发此警告 分析 这段英文翻译:主线程上的同步XMLHttpRequest不受欢迎,因为它对最终用户的体验有害: ajax同步,在向后台请求的过程中,前台代码执行会停留在 ...

  3. 05 MySQL数据类型的选择与使用

    数据类型的选择     1.CHAR与VARCHAR           存储/检索的方式不同.         CHAR是固定长度,而VARCHAR是可变长度         非SQLMode下,超 ...

  4. 【LeetCode】101. 对称二叉树

    题目 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3, ...

  5. LeetCode160 相交链表(双指针)

    题目: click here!!题目传送门 思路: 1.笨方法 因为如果两个链表相交的话,从相交的地方往后是同一条链表,所以: 分别遍历两个链表,得出两个链表的长度,两个长度做差得到n,然后将长的链表 ...

  6. Spring Aop 原理分析

    @EnableAspectJAutoProxy Aop功能开启注解 为容器中导入 @Import(AspectJAutoProxyRegistrar.class)组件,在其重写方法中为 ioc容器 注 ...

  7. PLC与单片机执行指令区别

    单片机执行指令方式与PLC执行指令方式对比 . 映射 对顺序功能图并行分支的理解.   PLC与单片机都是顺序执行指令方式的. PLC执行指令分为3个阶段. PLC的一个指令周期包括 输入采样 程序执 ...

  8. java 九数组分数

    九数组分数 1,2,3-9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. public class A { public static vo ...

  9. Windows Server 2008 R2 ntoskrnl.exe 引起蓝屏故障,重新启动

    前不久在HP ProLiant DL360 G6的服务器上面安装了Windows Server 2008 R2,系统一到晚上凌晨就出现蓝屏.重启现象,并且在 C:\Windows\Minidump 目 ...

  10. 操作数据库的SqlHelper类

    public static class SqlHelper { public static readonly string connstr = ConfigurationManager.Connect ...