封装ajax请求

Posted haloqq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装ajax请求相关的知识,希望对你有一定的参考价值。

/*
能发送ajax请求的函数模块
包装axios
函数的返回值是promise对象
axios.get()/post()返回的就是promise对象
 */
import axios from ‘axios‘

export default function ajax(url, data={}, method=‘GET‘) {

  return new Promise(function (resolve, reject) {
    let promise
    // 执行异步ajax请求
    if(method===‘GET‘) {
      promise = axios.get(url, {params: data}) // params配置指定的是query参数
    } else {
      promise = axios.post(url, data)
    }
    promise.then(response => {
      // 如果成功了, 调用resolve(response.data)
      resolve(response.data)
    }).catch(error => {  // 对所有ajax请求出错做统一处理, 外层就不用再处理错误了
      // 如果失败了, 提示请求后台出错
      alert(‘请求错误: ‘+error.message)
    })
  })
}

/*
const promise = ajax(‘/xxx‘)
promise.then(response => {
  const result = response.data

}).catch()



*/
/*async function getAddress() {
  /!*
  const response = await ajax(‘/address‘)
  const result = response.data
  *!/
  const result = await ajax(‘/address‘)
  if(result.code===0) {

  } else {

  }
}*/

以上是关于封装ajax请求的主要内容,如果未能解决你的问题,请参考以下文章

最严谨的ajax请求封装

关于原生ajax请求及其封装

JavaScript原生封装ajax请求和Jquery中的ajax请求

ajax请求封装调用

JQ实现简单的Ajax请求封装

Promise--实践练习之AJAX请求 & Promise封装AJAX操作