vue.js jsonp跨域详解

8 篇文章 0 订阅
7 篇文章 0 订阅

自己的随手笔记,分享给大家,如果有不足或者建议请大家多多指教,如果有问题请加 QQ(1445579000) 说明来意

jsonp 跨域  下列就以QQ音乐接口为例:

1.首先vue安装 jsonp

 

2.引入封装的jsonp.js文件

import JSONP from 'jsonp'

export default function jsonp(url, data, option) {
//  url中可能出现没有?的情况
  url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
//  使用promise方法进行回调
  return new Promise((resolve, reject) => {
    JSONP(url, option, (err, data) => {
      if (!err) {
        resolve(data)
      } else {
        reject(err)
      }
    })
  })
}

// 拼接url query params
function param(data) {    //  data是一个对象一般只有一层
  let url = ''
  for (let key in data) {
  //  为了防止data中值为undefined的情况
    let value = data[key] !== undefined ? data[key] : ''
  //  每一个键值对用&连接
    url += `&${key}=${encodeURIComponent(value)}`
  }
  //  去除url中的第一个&,以免重复
  return url ? url.substring(1) : ''
}

 

3.接口调用jsonp.js文件

 

4.在vue页面中调用请求接口

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值