封装简易axios函数 获取数据 GET

<!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函数 获取数据 GET</title>

</head>

<!--

步骤:

1.定义myAxios函数,接收配置对象,返回Promise对象

2.发起XHR请求,默认请求方法为GET

3.调用成功/失败的处理程序

4.调用myAxios函数

-->

<body>

<p class="my-p"></p>

<script>

function myAxios(config) {

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

const xhr = new XMLHttpRequest()

// 1. 判断有params选项,携带查询参数

if (config.params) {

// 2. 使用URLSearchParams转换,并携带到url上

const paramsObj = new URLSearchParams(config.params)

const queryString = paramsObj.toString()

// 把查询参数字符串,拼接在url?后面

config.url += `?${queryString}`

}

xhr.open(config.method || 'GET', config.url)

xhr.addEventListener('loadend', () => {

if (xhr.status >= 200 && xhr.status < 300) {

// xhr.status查看响应状态码

resolve(JSON.parse(xhr.response))

} else {

reject(new Error(xhr.response))

}

})

xhr.send()

})

}

// 3. 使用myAxios函数,获取地区列表

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>')

})

</script>

</body>

</html>

相关推荐
自在极意功。18 小时前
AJAX 深度详解:从基础原理到项目实战
前端·ajax·okhttp
William_cl1 天前
【ASP.NET Core】Controller 层 Action 返回值精讲:JsonResult(AJAX 交互核心)
ajax·asp.net·交互
San304 天前
深入理解 JavaScript 异步编程:从 Ajax 到 Promise
javascript·ajax·promise
会编程的李较瘦6 天前
【Spark学习】数据清洗
学习·ajax·spark
William_cl7 天前
C# ASP.NET Controller 核心:PartialViewResult 实战指南(AJAX 局部刷新全解析)
ajax·c#·asp.net
学习吖8 天前
vue中封装的函数常用方法(持续更新)
大数据·javascript·vue.js·ajax·前端框架
chilavert3188 天前
技术演进中的开发沉思-200 JavaScript:YUI 的AJAX 动态加载机制
javascript·ajax·okhttp
凌波粒9 天前
SpringMVC基础教程(4)--Ajax/拦截器/文件上传和下载
java·前端·spring·ajax
daols8810 天前
vxe-table 配置 ajax 加载列表数据,配置分页和查询搜索表单
vue.js·ajax·table·vxe-table
Fantasydg11 天前
AJAX JSON学习
前端·学习·ajax