1 Star 0 Fork 0

cuizhihuan520/my-one-xz

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
itheima.js 1.55 KB
一键复制 编辑 原始数据 按行查看 历史
cuizhihuan520 提交于 2021-05-15 10:49 . 初始化Git仓库的文件
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('&')
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/cuizhihuan520/my-one-xz.git
git@gitee.com:cuizhihuan520/my-one-xz.git
cuizhihuan520
my-one-xz
my-one-xz
master

搜索帮助