四十、vue中封装jsonp

本文介绍如何在Vue项目中引入并封装jsonp模块,实现跨域数据请求。通过安装依赖包并进行代码封装,创建了一个简洁易用的JSONP请求函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装jsonp

"dependencies": {
  "vue": "^2.3.3",
  "vue-router": "^2.5.3",
  "vuex": "^2.3.1",
  "fastclick": "^1.0.6",
  "vue-lazyload": "1.0.3",
  "axios": "^0.16.1",
  "jsonp": "0.2.1"
},
二、封装

import originJsonp from 'jsonp'

// 封装一个JSONP
export default function jsonp(url, data, option) {
  url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)

  return new Promise((resolve, reject) => {
    originJsonp(url, option, (err, data) => {
      if (!err) {
        resolve(data)
      } else {
        reject(err)
      }
    })
  })
}

export function param(data) {
  let url = ''
  for (var k in data) {
    let value = data[k] !== undefined ? data[k] : ''
    url += '&' + k + '=' + encodeURIComponent(value)
  }
  return url ? url.substring(1) : ''
}

Vue中使用JSONP,首先需要安装JSONP插件。可以在package.json文件的dependencies中添加"jsonp":"^0.2.1"来安装JSONP插件。安装完成后,可以在Vue组件中使用二次封装JSONP函数来发送跨域请求。 在.vue文件中,可以使用以下代码来使用JSONP: ``` import { jsonp } from 'jsonp'; // 定义一个函数来发送JSONP请求 function fetchData() { const url = 'http://example.com/api?callback=callbackFunction'; jsonp(url).then(res => { console.log(res); // 处理返回的数据 }).catch(error => { console.error(error); // 处理错误 }); } export default { // ... methods: { fetchData() { fetchData(); } } } ``` 请注意,在请求的URL中,需要指定一个与调用的JSONP的URL中的callback值相对应的callback参数。在请求的回调函数中,可以处理返回的数据。 以上是在Vue中使用JSONP的基本方法。通过这种方式,可以发送跨域请求并获取返回的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Jsonpvue中的使用](https://blog.csdn.net/yuenandehutu/article/details/121539904)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [vue中使用jsonp](https://blog.csdn.net/yun_822/article/details/82727030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值