封装简易axios函数 注册用户 提交表单POST

<!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函数 注册用户 提交表单POST</title>

</head>

<body>

<button class="reg-btn">注册用户</button>

<script>

/**

* 目标:封装_简易axios函数_注册用户

* 1. 判断有data选项,携带请求体

* 2. 转换数据类型,在send中发送

* 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 && xhr.status < 300) {

resolve(JSON.parse(xhr.response))

} else {

reject(new Error(xhr.response))

}

})

// 1. 判断有data选项,携带请求体

if (config.data) {

// 2. 转换数据类型,在send中发送

const jsonStr = JSON.stringify(config.data)

xhr.setRequestHeader('Content-Type', 'application/json')

xhr.send(jsonStr)

} else {

// 如果没有请求体数据,正常的发起请求

xhr.send()

}

})

}

document.querySelector('.reg-btn').addEventListener('click', () => {

// 3. 使用myAxios函数,完成注册用户

myAxios({

url: 'http://hmajax.itheima.net/api/register',

method: 'POST',

data: {

username: 'itheima999',

password: '666666'

}

}).then(result => {

console.log(result)

}).catch(error => {

console.dir(error)

})

})

</script>

</body>

</html>

相关推荐
qq_406176141 天前
关于JavaScript中的filter方法
开发语言·前端·javascript·ajax·原型模式
LongtengGensSupreme4 天前
开放所有跨域 ----前端和后端
前端·后端·ajax·vue·api·jquery
雨雨雨雨雨别下啦5 天前
ajax和axios到底是什么
前端·ajax·okhttp
C_心欲无痕5 天前
网络相关 - Fetch 与 Ajax 请求讲解
前端·网络协议·ajax·fetch
qq_406176147 天前
什么是模块化
开发语言·前端·javascript·ajax·html5
释怀不想释怀9 天前
vue(登录,退出,浏览器本地存储机制)
前端·javascript·vue.js·ajax·html
chilavert31810 天前
技术演进中的开发沉思-284 计算机原理:二进制核心原理
javascript·ajax·计算机原理
Beginner x_u10 天前
从 Promise 到 async/await:一次把 JavaScript 异步模型讲透
javascript·ajax·promise·异步·async await
‿hhh10 天前
综合交通运行协调与应急指挥平台项目说明
java·ajax·npm·json·需求分析·个人开发·规格说明书
释怀不想释怀11 天前
Ajax,vue生命周期(自动加载页面发出请求)Axios
前端·javascript·ajax