详解如何在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 相关文章推荐
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
JavaScript Date对象 日期获取函数
Dec 19 Javascript
jQuery检测输入的字符串包含的中英文的数量
Apr 17 Javascript
javascript控制台详解
Jun 25 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
es7学习教程之fetch解决异步嵌套问题的方法示例
Jul 21 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
js实现导航跟随效果
Nov 17 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
Oct 13 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 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
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
mac下安装nginx和php
2013/11/04 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python下载图片实现方法(超简单)
2017/07/21 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
Python闭包思想与用法浅析
2018/12/27 Python
django fernet fields字段加密实践详解
2019/08/12 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
什么是接口(Interface)?
2013/02/01 面试题
新学期标语
2014/06/30 职场文书
世界红十字日活动总结
2015/02/10 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
道歉信怎么写
2015/05/12 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL