详解如何在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 相关文章推荐
动态改变textbox的宽高的js
Oct 26 Javascript
JavaScript中的Truthy和Falsy介绍
Jan 01 Javascript
深入探讨JavaScript String对象
Mar 09 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
Apr 01 Javascript
jQuery实现布局高宽自适应的简单实例
May 28 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
Jul 05 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
深入理解JavaScript中的for循环
Feb 07 Javascript
vue 中filter的多种用法
Apr 26 Javascript
vue-cli监听组件加载完成的方法
Sep 07 Javascript
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
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快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
mongodb和php的用法详解
2019/03/25 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
用js实现in_array的方法
2013/11/05 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
解决python3运行selenium下HTMLTestRunner报错的问题
2018/12/27 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
python创建学生管理系统
2019/11/22 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
python编写实现抽奖器
2020/09/10 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
客户经理岗位职责
2015/01/31 职场文书
公司承诺书格式范文
2015/04/28 职场文书
学校安全管理制度
2015/08/06 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
文艺委员竞选稿
2015/11/19 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript