详解如何在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 相关文章推荐
Js 弹出框口并返回值的两种常用方法
Dec 30 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
js获取html页面节点方法(递归方式)
Dec 13 Javascript
JavaScript实现多个重叠层点击切换效果的方法
Apr 24 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
Dec 01 Javascript
Bootstrap每天必学之标签页(Tab)插件
Aug 09 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
使用selenium抓取淘宝的商品信息实例
Feb 06 Javascript
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 Javascript
详解puppeteer使用代理
Dec 27 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 skymvc 一款轻量、简单的php
2011/06/28 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
PHP5函数小全(分享)
2013/06/06 PHP
将php数组输出html表格的方法
2014/02/24 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
javascript中new关键字详解
2015/12/14 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
Seajs源码详解分析
2019/04/02 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
python 以16进制打印输出的方法
2018/07/09 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
TCP/IP模型的分界线
2012/12/01 面试题
工商管理专业实习生自我鉴定
2013/09/29 职场文书
工程监理应届生求职信
2013/11/09 职场文书
市场部管理制度
2014/02/02 职场文书
英语专业求职信
2014/07/08 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
python之json文件转xml文件案例讲解
2021/08/07 Python
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL