详解如何在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文件的函数代码分享
Jul 28 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
Apr 11 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
Apr 27 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
AngularJS实现DOM元素的显示与隐藏功能
Nov 22 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
Jan 12 Javascript
详解JavaScript RegExp对象
Feb 04 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 Javascript
使用JavaScript破解web
Sep 28 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运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
php语法检查的方法总结
2019/01/21 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
利用python爬取散文网的文章实例教程
2017/06/18 Python
mac下如何将python2.7改为python3
2018/07/13 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
django 类视图的使用方法详解
2019/07/24 Python
python打包成so文件过程解析
2019/09/28 Python
python文件读取失败怎么处理
2020/06/23 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
python通过cython加密代码
2020/12/11 Python
python中if嵌套命令实例讲解
2021/02/25 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
C#的几个面试问题
2016/05/22 面试题
本科生职业生涯规划书范文
2014/01/21 职场文书
技术比武方案
2014/05/19 职场文书
新党章的学习心得体会
2014/11/07 职场文书