详解如何在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 相关文章推荐
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
Sep 04 Javascript
通过jQuery源码学习javascript(三)
Dec 27 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
Apr 02 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
Dec 27 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
Aug 04 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
Mar 01 Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
May 26 Javascript
vue动态设置页面title的方法实例
Aug 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生成扇形比例图实例
2013/11/06 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
Python获取邮件地址的方法
2015/07/10 Python
python字符串string的内置方法实例详解
2018/05/14 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
如何进行Linux分区优化
2016/09/13 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python