欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 封装_简易axios函数_获取地区列表

封装_简易axios函数_获取地区列表

2025/2/23 15:56:23 来源:https://blog.csdn.net/2402_84971234/article/details/145677842  浏览:    关键词:封装_简易axios函数_获取地区列表

目录

功能概述:

HTML 和 JavaScript 代码:

代码解析:

程序运行结果:


在这个示例中,我们展示了如何封装一个简易的 myAxios 函数,用来发起带查询参数的 HTTP 请求,并获取相应的数据。与常规的 XMLHttpRequest 使用方式相比,这个封装函数使得我们可以更方便地发送带查询参数的请求,类似于 axios 的请求方式。

功能概述:

  1. 封装 myAxios 函数:这个函数接受一个配置对象(config),通过 XMLHttpRequest 发起异步请求。
  2. 携带查询参数:如果传入的配置对象中包含 params 字段,myAxios 会将其转化为 URL 查询字符串(使用 URLSearchParams),并附加到 URL 后面。
  3. 请求和响应处理:函数返回一个 Promise。请求成功时,解析响应数据并调用 resolve,请求失败时,调用 reject,并传递错误信息。

HTML 和 JavaScript 代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>封装_简易axios函数_获取地区列表</title>
</head><body><p class="my-p"></p><script>/*** 目标:封装_简易axios函数_获取地区列表*  1. 判断有params选项,携带查询参数*  2. 使用URLSearchParams转换,并携带到url上*  3. 使用myAxios函数,获取地区列表*/function myAxios(config){return new Promise((resolve,reject) => {const xhr = new XMLHttpRequest()if(config.params){const paramsObj = new URLSearchParams(config.params)const queryString = paramsObj.toString()config.url += `?${queryString}`}xhr.open(config.method || 'GET',config.url)xhr.addEventListener('loadend', () => {if(xhr.status === 200){resolve(JSON.parse(xhr.response))}else{reject(new Error(xhr.response))}})xhr.send()})}myAxios({url:'http://hmajax.itheima.net/api/area',params:{pname:'广东省',cname:'广州市'}}).then(result =>{console.log(result);document.querySelector('.my-p').innerHTML = result.list.join('<br>')}).catch(error => {console.dir(error);document.querySelector('.my-p').innerHTML = error.message})</script>
</body></html>

代码解析:

  1. 封装 myAxios 函数
    • 创建一个 Promise 对象,发送请求时使用 XMLHttpRequest
    • 如果配置对象 params 存在,它会被转化为 URL 查询字符串,并附加到 URL 后面。
    • 发送请求后,若状态码为 200,解析并返回响应数据;若请求失败,返回错误信息。
  2. 发送请求并处理数据
    • 调用 myAxios 函数时,传递一个配置对象,其中 url 指定请求的 API 地址,params 包含请求的查询参数(如 pnamecname)。
    • 请求成功后,页面会显示返回的地区列表;如果请求失败,页面会显示错误信息。

程序运行结果:

当运行该代码时,浏览器会发起一个请求,向 http://hmajax.itheima.net/api/area 发送带有查询参数(pname=广东省cname=广州市)的 GET 请求。如果请求成功,返回的数据会通过 resolve 解析,并将返回的地区列表显示在网页上。如果请求失败,网页会显示错误信息,通常会包含 HTTP 错误或请求失败的详细信息。

例如,当查询成功时,页面上会显示类似以下的省市地区列表:

天河区
越秀区
海珠区
荔湾区

如果请求失败,页面会显示如下错误信息:

模拟AJAX请求-失败

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词