详解如何在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 相关文章推荐
用jscript实现新建和保存一个word文档
Jun 15 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
Aug 24 Javascript
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
js 遍历json返回的map内容示例代码
Oct 29 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
JQuery学习总结【二】
Dec 01 Javascript
Javascript继承机制详解
May 30 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
Vue.js实现的表格增加删除demo示例
May 22 Javascript
vue.js计算属性computed用法实例分析
Jul 06 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
vue实现图片上传预览功能
Dec 23 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使用glob函数遍历文件和目录详解
2016/09/23 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
canvas的神奇用法
2017/02/03 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
js实现分页功能
2017/05/24 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
js操作二进制数据方法
2018/03/03 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
python实现数据图表
2017/07/29 Python
Python3 中文文件读写方法
2018/01/23 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
考试不及格检讨书
2014/01/09 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
毕业生求职信范文
2014/06/29 职场文书
解放思想演讲稿
2014/09/11 职场文书
政府会议通知范文
2015/04/15 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
MySQL分库分表详情
2021/09/25 MySQL