浅谈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算法之图的遍历
Nov 16 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
基于python实现百度翻译功能
May 09 Python
Python简易版停车管理系统
Aug 12 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
Apr 11 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
python Timer 类使用介绍
Dec 28 Python
Python竟然能剪辑视频
May 25 Python
python可视化之颜色映射详解
Sep 15 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
js的回调函数详解
2015/01/05 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
详解Vue源码中一些util函数
2019/04/24 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python 编程速成(推荐)
2019/04/15 Python
python中web框架的自定义创建
2019/09/08 Python
django 取消csrf限制的实例
2020/03/13 Python
基于matplotlib xticks用法详解
2020/04/16 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
python线程优先级队列知识点总结
2021/02/28 Python
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
SQL面试题
2013/12/09 面试题
火车的故事教学反思
2014/02/11 职场文书
保护母亲河倡议书
2014/04/14 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
教研处工作方案
2014/05/26 职场文书
北京奥运会主题口号
2014/06/13 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
JavaScript实现简单的音乐播放器
2022/08/14 Javascript