ajax封装jsonp,为什么要封装jsonp?

本文探讨了为何需要一个jsonp.js文件来处理跨域请求,并介绍了如何封装一个返回Promise的函数。讲解了在home.js中使用export的recommend方法,以及在created钩子调用该方法的意图。重点在于前后端交互中AJAX请求的封装与回调机制。

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

为什么要写一个jsonp.js文件,文件做的事情是将url后面带的参数连上,然后暴露一个promise对象。

为什么发起ajax请求的axios却不用封装ajax?

export default (url, data, options) => {

// 请求的地址如果没有?就用?连接参数,如果请求的地址有?就用&连接参数

url += (url.includes('?') === true ? '?' : '&') + parseParma(data);

// 返回一个promise对象,可以用then方法执行回调函数

// resolve, reject这两个参数是promise自带的,不需要传入函数。

return new Promise((resolve, reject) => {

jsonp(url, options, (err, data) => {

if (err) {

// 如果有错,就执行reject方法并且把错误信息传递出去

reject(err);

} else {

// 执行成功,执行resolve方法,把data作为参数传递出去

resolve(data);

}

});

});

};

暴露的方法是为了返回一个promise对象然后在home.js文件中通过then方法写我们需要的回调函数吗?暴露的方法返回promise对象的意义是什么?

为什么在home.js中:

export const getHomeRecommend = (page = 1, psize = 20) => {

const url = 'https://ju.taobao.com/json/tg/ajaxGetItemsV2.json';

const params = {

page,

psize,

type: 0,

fontCatId: ''

};

return jsonp(url, params, {

param: 'callback'

}).then(res => {

console.log(res);

});

};

这段代码是什么意思?是调用我们下载的jsonp吗?为什么还要定义一个recommend方法?可以解释一下上述recommend方法的代码吗?

为什么在recommend.vue中created函数内又调用recommend方法?

在created调用recommend方法是保证发起jsonp过程中有时长,created方法是渲染HTML之前就调用保证不会显示空白的意思吗?

不太懂为什么在home.js中又定义了recommend方法的意义是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值