代码拉取完成,页面将自动刷新
const itheima = function(options) {
// 1. 创建 xhr 对象
const xhr = new XMLHttpRequest();
// 2. 注册 load 事件
xhr.addEventListener('load', function() {
const res = JSON.parse(xhr.response)
options.success(res)
})
// 3. 发起 GET 或 POST 请求
// toUpperCase()方法 转化为大写
if (options.type.toUpperCase() === 'GET') {
// 发起 GET 请求
// 根据 用户提供的 URL 地址进行 split() 分隔 split()分割后得到的是数组
const arr = options.url.split('?')
if (arr[1]) {
// 如果 ?后面的查询参数不为空,则 arr[1] 作为查询参数的一部分一起拼接到 URL 末尾
xhr.open('GET', arr[0] + '?' + arr[1] + '&' + qs(options.data))
} else {
// 如果 ? 后面的查询参数为空,则只拼接 qs() 方法返回的查询参数
xhr.open('GET', arr[0] + '?' + qs(options.data))
}
xhr.send()
} else {
// 发起其他请求 POST、PUT、DELETE、PATCH
xhr.open(options.type, options.url)
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xhr.send(qs(options.data))
}
}
// 将对象格式转化为字符串格式 key=value
function qs(obj) {
// 定义空数组
const items = []
// for in 循环
for (k in obj) {
// 添加到数组后面
items.push(`${k}=${obj[k]}`)
}
// 返回数组值用 & 拼接
return items.join('&')
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。