浅谈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根据出生日期返回年龄的方法
Mar 26 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
python实现Decorator模式实例代码
Feb 09 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
python中返回矩阵的行列方法
Apr 04 Python
python实现dijkstra最短路由算法
Jan 17 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 Python
Python3 批量扫描端口的例子
Jul 25 Python
python sorted函数的小练习及解答
Sep 18 Python
python脚本和网页有何区别
Jul 02 Python
Django REST Framework 分页(Pagination)详解
Nov 30 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 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引用效率问题分析
2012/03/23 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
纯js简单日历实现代码
2013/10/05 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
js Calender控件使用详解
2015/01/05 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
python找出完数的方法
2018/11/12 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
华为慧通面试题
2012/09/11 面试题
财务管理专业毕业生求职信范文
2013/09/21 职场文书
安全大检查实施方案
2014/02/22 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
平安工地建设方案
2014/05/06 职场文书
毕业生面试求职信
2014/06/23 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server