getJSON(url) {
// 创建一个promise对象
let promise = new Promise(function(resolve, reject) {
let xhr = new XMLHttpRequest()
// 新建一个http请求
xhr.open('GET',url,true)
// 设置状态的监听函数
xhr.onreadystatechange = function() {
if(this.readyState !== 4) return
// 当请求成功或者失败时,改变promise状态
if(this.status===200) {
resolve(this.response)
} else {
reject(new Error(this.statusText))
}
}
// 设置错误监听函数
xhr.onerror = function(){
reject(new ErrorEvent(this.statusText))
}
// 设置响应数据的类型
xhr.responseType = "json"
// 设置请求头信息
xhr.setRequestHeader("Accept","application/json")
// 发送http请求
xhr.send(null)
})
return promise
}
用promise写http请求
最新推荐文章于 2024-06-28 17:36:39 发布
该文章介绍了如何使用Promise封装一个getJSON函数,通过XMLHttpRequest发起HTTPGET请求,获取JSON数据。函数内设置了状态监听和错误处理,当请求成功时解析并返回响应数据,失败时抛出错误。
摘要由CSDN通过智能技术生成