详解如何在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 仿关机效果的图片层
Dec 26 Javascript
jQuery代码优化 事件委托篇
Nov 01 Javascript
不同的jQuery API来处理不同的浏览器事件
Dec 09 Javascript
javascript 全选与全取消功能的实现代码
Dec 23 Javascript
js实现的彩色方块飞舞奇幻效果
Jan 27 Javascript
Javascript打印局部页面实例
Jun 21 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
vue导出html、word和pdf的实现代码
Jul 31 Javascript
关于JavaScript数组去重的一些理解汇总
Sep 10 Javascript
vue 封装面包屑组件教程
Nov 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
xml+php动态载入与分页
2006/10/09 PHP
php桌面中心(一) 创建数据库
2007/03/11 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
javascript 数组操作详解
2015/01/29 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
在Python中使用Neo4j数据库的教程
2015/04/16 Python
python使用nntp读取新闻组内容的方法
2015/05/08 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
django加载本地html的方法
2018/05/27 Python
利用python实现AR教程
2019/11/20 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
医生自荐信
2013/10/11 职场文书
数控技术应届生求职信
2013/11/13 职场文书
高中同学聚会邀请函
2014/01/11 职场文书
岳父生日宴会答谢词
2014/01/13 职场文书
企业宣传工作方案
2014/06/02 职场文书
文员求职信
2014/07/15 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
借款民事起诉状范文
2015/05/19 职场文书