详解如何在Vue项目中发送jsonp请求


Posted in Javascript onOctober 25, 2019

起因

公司临时要支撑河南的一个项目,做一个单点登录的功能。

简单来说,就是以下3步

客户方点击某个按钮进入我们的页面a

在页面a中由前端发送一个jsonp请求到客户方,得到一个token值

前端得到token值后向自己后端发送一个请求,后端根据token去redis(token的值就是redis里的key)里取值(key=token的值,value=用户信息等)判断用户是否已登陆,若登陆则根据取到的工号等信息后端模拟登陆,若没有登陆,则跳转到客户方登陆页面

怎么做

发送jsonp请求,axios官方貌似并不支持,所以排除??‍♀️

经过辗转Google,发现了*vue-jsonp*这个插件

使用vue-jsonp

官方地址:vue-jsonp

下载

npm install vue-jsonp --save-dev

引入项目

import Vue from 'vue'
import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)

然后,我们就可以在项目中愉快地使用啦✨✨

项目中xxx.vue文件

<script>
export default {

  data() {...},
  created() {
    // 
    this.getJson()
  },
  mounted() {
    window.jsonpCallback = (data) => {
      console.log(data.token)
      // 调用获取后端token的方法
      this.getToken(data.token)
    }
  },
  methods: {
    getJson() {
     this.$jsonp(this.url, {
      callbackQuery: "callbackParam",
      callbackName: "jsonpCallback"
     })
      .then((json) => {
      // 返回的jsonp数据不会放这里,而是在 window.jsonpCallback
       console.log(json)
      })  
    },
    
    getToken(token) {
      this.axios.post('/xxxurl')
        .then((res) => {
          // success 之后就正常登陆了
        })
    
    }
  
  }
 }  
</script>

是不是so easy ?但是真的整了一晚上才整出来,谁能知道jsonp的返回值在then里返回不了呢,打印也打印不出来。。。

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

Javascript 相关文章推荐
再谈javascript图片预加载技术(详细演示)
Mar 12 Javascript
jQuery获取当前对象标签名称的方法
Feb 07 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
简单谈谈json跨域
Mar 13 Javascript
深入学习jQuery中的data()
Dec 22 Javascript
通过jsonp获取json数据实现AJAX跨域请求
Jan 22 Javascript
Angular简单验证功能示例
Dec 22 Javascript
vue动画效果实现方法示例
Mar 18 Javascript
javascript实现简易聊天室
Jul 12 Javascript
js实现时钟定时器
Mar 26 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
May 25 Javascript
layui实现form表单同时提交数据和文件的代码
Oct 25 #Javascript
vue实现弹幕功能
Oct 25 #Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 #Javascript
使用layui前端框架弹出form表单以及提交的示例
Oct 25 #Javascript
layui form表单提交后实现自动刷新
Oct 25 #Javascript
jquery实现购物车基本功能
Oct 25 #jQuery
vue中@change兼容问题详解
Oct 25 #Javascript
You might like
PHP安装问题
2006/10/09 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
jquery map方法使用示例
2014/04/23 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
Python新手实现2048小游戏
2015/03/31 Python
Python中有趣在__call__函数
2015/06/21 Python
python 的列表遍历删除实现代码
2020/04/12 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
值传递还是引用传递
2015/02/08 面试题
学生就业推荐信
2013/11/13 职场文书
员工工作表扬信范文
2014/01/13 职场文书
一年级语文教学反思
2014/02/13 职场文书
租房协议书
2014/04/10 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书