浅谈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登录QQ邮箱发信的实现代码
Feb 10 Python
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
Python队列的定义与使用方法示例
Jun 24 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
Python列表和元组的定义与使用操作示例
Jul 26 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
对django views中 request, response的常用操作详解
Jul 17 Python
Python使用Turtle库绘制一棵西兰花
Nov 23 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
Feb 19 Python
python接口测试返回数据为字典取值方式
Feb 12 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
js+css在交互上的应用
2010/07/18 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
python障碍式期权定价公式
2019/07/19 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
服务之星获奖感言
2014/01/21 职场文书
医院义诊活动总结
2014/07/04 职场文书
滞留工资返还协议书
2014/10/19 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
nginx访问报403错误的几种情况详解
2022/07/23 Servers