浅谈django rest jwt vue 跨域问题


Posted in Python onOctober 26, 2018

django rest framework 使用 router 注册url时,访问接口 包302错误 可能是因为请求url 写法有问题,

如请求 /api/login/ 报302 ,需要去掉后面的反斜杠,正确写法 /api/login 请求跨域:

跨域:

简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。这显然是不安全的。为此,浏览器的鼻祖:网景(Netscape)公司提出了优秀的解决方案:著名的浏览器同源策略。现在所有支持JavaScript的浏览器都会使用这个策略。

同源:

域名、协议、端口均相同的网站即为同源。

流程:

当一个浏览器的两个Tab页分别打开百度和谷歌页面时,百度发起一个脚本执行,此时浏览器会检查该脚本属于哪个页面。即检查是否同源。只有和百度同源的脚本才会被执行。若非同源,在请求数据时,浏览器会在控制台报一个异常。提示拒绝访问。

解决方法:

安装django-cors-headers

pip install django-cors-headers

settings.py配置

INSTALLED_APPS = [

  ...

  "corsheaders",

...

]

 

MIDDLEWARE_CLASSES = (

  ...

"corsheaders.middleware.CorsMiddleware",

"django.middleware.common.CommonMiddleware", # 注意顺序

...

)

# 跨域增加忽略

CORS_ALLOW_CREDENTIALS = True

CORS_ORIGIN_ALLOW_ALL = True

CORS_ORIGIN_WHITELIST = (

  "*"

)

 

CORS_ALLOW_METHODS = (

  "DELETE",

  "GET",

  "OPTIONS",

  "PATCH",

  "POST",

  "PUT",

  "VIEW",

)

 

CORS_ALLOW_HEADERS = (

  "XMLHttpRequest",

  "X_FILENAME",

  "accept-encoding",

  "authorization",

  "content-type",

  "dnt",

  "origin",

  "user-agent",

  "x-csrftoken",

  "x-requested-with",

)

解决

通过以上配置,即可完美解决django跨域请求处理。

需要注意的就是cors - headers的中间件CorsMiddleware在注册时必须放在django - common中间件的前一个。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中DJANGO简单测试实例
May 11 Python
python实现文本去重且不打乱原本顺序
Jan 26 Python
python 基础教程之Map使用方法
Jan 17 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
在双python下设置python3为默认的方法
Oct 31 Python
Python面向对象基础入门之编码细节与注意事项
Dec 11 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
基于Python fminunc 的替代方法
Feb 29 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
让文件路径提取变得更简单的Python Path库
May 27 Python
Python os.rename() 重命名目录和文件的示例
Oct 25 #Python
python实现旋转和水平翻转的方法
Oct 25 #Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 #Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 #Python
python微信公众号之关注公众号自动回复
Oct 25 #Python
python 文件查找及内容匹配方法
Oct 25 #Python
利用python循环创建多个文件的方法
Oct 25 #Python
You might like
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
Prototype Object对象 学习
2009/07/12 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
vue实现计算器功能
2020/02/22 Javascript
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
初学Python实用技巧两则
2014/08/29 Python
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
大学新生军训个人的自我评价
2013/10/03 职场文书
实习生自我鉴定
2013/12/12 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
小学生暑假感言
2014/02/06 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书