封装一个ajax

实现类似 axios.get()axios.post() 的API

const ajax = {
  init(type, url, data) {
      return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest()
        xhr.open(type, url)
        xhr.onreadystatechange = function() {
          if (xhr.readyState === 4) {
            if (xhr.status === 200) {
              resolve(JSON.parse(xhr.responseText))
            } else {
              reject(new Error('请求失败'))
            }
          }
        }
        data ? xhr.send(JSON.stringify(data)) : xhr.send()
      })
    },
    get(url) {
      return this.init('get', url)
    },
    post(url, data) {
      return this.init('post', url, data)
    }
}

const url = '/xxx'
ajax.get(url).then(res => {
  console.log(res)
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容