H5用axios代替Ajax调取服务器接口

功能需求:普通ajax调取后台接口需要写很多代码,且不好统一管理token,问大神同事说使用axios代替ajax,感觉很不错!

所需材料:一个a.html页面,一个config.js,一个api.js
下面进入正题
第一步:在a.html引入vue.js, axios文件, a.js, config.js 和 api.js,路径自己配好

第二步:配置config.js

/* 服务器地址 */
var base_url = 'http://************'; //测试服务器
//var base_url = 'http://**********'; //正式服务器


/******************* 配置的拦截器 封装的axios ***********************/
// 创建axios实例
const service = axios.create({
  baseURL: base_url, // api的base_url
  timeout: 120000 // 请求超时时间
})

// request拦截器
service.interceptors.request.use(config => {
  //config.headers['token'] = 66;
  config.headers['Content-Type'] = "application/json";
  // config.headers['id'] = window.sessionStorage.getItem("id");
  // console.log(config.headers)
  return config
}, error => {
  // Do something with request error
  // console.log(error) // for debugpromise.reject(error)
})

// respone拦截器
service.interceptors.response.use(
  response => {
      const res = response.data

      return res
  },
  error => {
      console.log(error) // for debug
      Toast('服务器异常, 请稍后重试')

      return Promise.reject(error)
  }
)

第三步:在api.js放所有的接口,注意一下get方法和post方法稍有点不同,无参可以不写

/* ***************************incoming*********************************** */
function findById(params) { //面签页面--根据apid查询已有信息
    return service({
        url: '/api/backend/approvalProcess/findById',
        method: 'get',
        params
    })
}

function faceSignSave(params) { //面签页面--保存提交
    return service({
        url: '/api/backend/faceSign/save',
        method: 'post',
        data: JSON.stringify(params)
    })
}

第四步:在a.js使用,confirmBtn()为点击方法,faceSignSave()就是api中定义的接口名称,params 就是传的参数,注意格式faceSignSave(params).then(res => { })

//点击确定
   confirmBtn() {
         const params = { //总的提交信息
             id: this.apId, //混合传过来  业务流id
         }
         let that = this;
         faceSignSave(params).then(res => {
             if (res.code == 0) {
                //do something
             } else {
                //do something
             }
         })
     }

这样就完成了,如果接口多了,就会很方便在config.js中统一管理接口了

好的,以下是一个基于axios封装的Ajax调用数据接口的示例: ```javascript import axios from 'axios'; const request = axios.create({ baseURL: 'https://api.example.com', // 接口的基础路径 timeout: 5000, // 请求超时时间 }); // 请求拦截器 request.interceptors.request.use(config => { // 在发送请求之前做些什么,比如添加token config.headers.Authorization = 'Bearer ' + getToken(); return config; }, error => { // 对请求错误做些什么 console.error('请求拦截器错误:', error); return Promise.reject(error); }); // 响应拦截器 request.interceptors.response.use(response => { // 对响应数据做些什么,比如处理错误状态码 if (response.status !== 200) { console.error('响应状态码错误:', response.status); return Promise.reject(new Error('响应状态码错误')); } return response.data; }, error => { // 对响应错误做些什么 console.error('响应拦截器错误:', error); return Promise.reject(error); }); export default request; // 调用接口 import request from '@/utils/request'; request({ method: 'get', url: '/api/user', params: { id: 1 } }).then(response => { console.log(response); }).catch(error => { console.error(error); }); ``` 以上代码中,我们通过axios.create()方法创建了一个axios实例,然后定义了请求拦截器和响应拦截器,在发送请求之前可以在请求头中添加token,对响应数据也可以进行一些处理。最后我们导出了这个axios实例,并在调用接口使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值