详解如何在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 TextArea字符串长度限制代码集合
Oct 31 Javascript
JS 日期比较大小的简单实例
Jan 13 Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 Javascript
AngularJS模块管理问题的非常规处理方法
Apr 29 Javascript
javascript中动态函数用法实例分析
May 14 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
May 13 Javascript
解决给dom元素绑定click等事件无效问题的方法
Feb 17 Javascript
vue2.0多条件搜索组件使用详解
Mar 26 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 Javascript
vue实现节点增删改功能
Sep 26 Javascript
JS的深浅复制详细
Oct 16 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
用header 发送cookie的php代码
2007/03/16 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
javascript简易画板开发
2020/04/12 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
详解Angular cli配置过程记录
2019/11/07 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
python如何调用java类
2020/07/05 Python
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
空气环保标语
2014/06/12 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年质量工作总结
2014/11/22 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书