浅谈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开启多个子进程并行运行的方法
Apr 18 Python
Python易忽视知识点小结
May 25 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
django 创建过滤器的实例详解
Aug 14 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python找出完数的方法
Nov 12 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
python 导入数据及作图的实现
Dec 03 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python如何让字典保持有序排列
Apr 29 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进程之间实现共享内存的方法
2014/06/13 PHP
微信红包随机生成算法php版
2016/07/21 PHP
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
vue ssr 指南详读
2018/06/29 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
Python写的贪吃蛇游戏例子
2014/06/16 Python
Python中的类学习笔记
2014/09/23 Python
python选择排序算法实例总结
2015/07/01 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
django中media媒体路径设置的步骤
2019/11/15 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
保密承诺书范文
2014/03/27 职场文书
体育馆的标语
2014/06/24 职场文书
无犯罪记录证明
2014/09/19 职场文书
2014年统计工作总结
2014/11/21 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
欢迎词范文
2015/01/27 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
Python中的变量与常量
2021/11/11 Python