127.AJAX封装_响应的处理
2023-09-27 14:23:04 时间
<!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>AJAX封装_响应的处理</title>
</head>
<body>
<h1>AJAX封装_响应的处理</h1>
<input type="button" value="请求数据get" onclick="data_get()">
<input type="button" value="请求数据post" onclick="data_post()">
<script>
function AJAX(options) {
let xhr = new XMLHttpRequest()
let params = ''
for (let key in options.data) {
value = options.data[key]
params = params + key + '=' + value + '&'
}
params = params.substr(0, params.length - 1)
if (options.type == 'get') {
options.url = options.url + '?' + params
}
xhr.open(options.type, options.url)
if (options.type == 'post') {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xhr.send(params)
} else {
xhr.send(params)
}
xhr.onreadystatechange = () => {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
options.success(xhr.responseText)
} else {
options.error(xhr.status)
}
}
}
//网络错误
xhr.onerror = () => {
options.error('10000:网络错误')
}
}
function data_get() {
AJAX({
type: 'get',
url: 'http://httpbin.orgdas/getdad',
data: { 'name': 'sxt', 'pwd': 123 },
success: (data) => {
console.log(data);
console.log('----------test-------');
},
error: (data) => {
console.log('返回的状态码是' + data);
}
})
}
</script>
</body>
</html>
相关文章
- PyQt5封装自动调整窗体类
- JavaScript:队列的封装及面试题击鼓传花队列方法实现案例
- 微信小程序之巧妙的封装
- rest_framework 的 Response响应封装
- 依赖倒置原则应用,Lumen基于PHPMailer封装邮件服务
- 七千字带你了解封装等机制
- js:使用promise,async封装函数
- python中sqlite的基本调用和数据库类的封装案例(2)
- python中sqlite的基本调用和数据库类的封装案例(1)
- 我不允许有人不会封装 ECharts
- C/C++封装库ocicpplib调用Oracle存储过程的方法
- 7.C++类与封装的概念
- (转)【多媒体封装格式详解】--- AAC ADTS格式分析
- SpringBoot:如何优雅地进行响应数据封装、异常处理?
- ReactNative实战系列 组件封装之Dialog(iOS和Android通用)
- iOS-UIButton分类扩展(封装)