axios及jQuery各种方式提交数据

 1. application/json基本get和post请求

//get请求

export function getPhoneCode(data) {
  // {phone: 手机号,pictureCode: 1111}
  //同axios#delete,axios#head,axios#options
  return axios.get('/api/url', {
    params: data,
    headers: { 'X-Requested-With': 'XMLHttpRequest' }
  });
}

export function getToken(params) {
  return axios({
    method: 'get',
    url: '/api/url',
    params,
    headers: { 'X-Requested-With': 'XMLHttpRequest' }
  });
}


//post请求

export function bindUser(data) {
  //同axios#put,axios#patch
  return axios.post('/api/url', data, {
    headers: { 'X-Requested-With': 'XMLHttpRequest' }
  });
}

export function getList(data) {
  return axios({
    method: 'POST',
    url: '/api/url',
    data,
    headers: { 'X-Requested-With': 'XMLHttpRequest' }
  });
}



//jquery

$.ajax({
  url: './11.php',
  type: 'post', // get
  processData: false,
  contentType: 'application/json; charset=utf-8',
  data: JSON.stringify({
    aa: 11,
    bb: 2
  })
});

2. application/x-www-form-urlencoded请求(仅支持post)

export function login(data) {
  return axios.post(
    '/api/url',
    qs.stringify(data),
    {
      headers: {
        'content-type': 'application/x-www-form-urlencoded'
      }
    }
  );
}



$.ajax({
  url: './11.php',
  type: 'post', // get
  data: {
    aa: 11,
    bb: 2
  }
});

3. multipart/form-data请求(仅支持post)

export function upload(data) {
  data = data || {};
  let submitData;
  const formData = new FormData();
  if (formData.realFormData) {
    // 兼容ios,并注意axios版本要在1.3.1,ios钉钉会有realFormData属性
    submitData = data;
  } else {
    Object.keys(data).forEach(v => {
      formData.append(v, data[v]);
    });
    submitData = formData;
  }
  console.info(111, data, formData, submitData);

  return axios({
    url: '/api/upload',
    method: 'post',
    headers: {
      Authorization: 'sdfasfsfwrfrwerrrrrrrrrrrfbdddddddddddddd',
      'Content-Type': 'multipart/form-data'
    },
    onUploadProgress(progressEvent) {
      // 原生获取上传进度的事件
      if (progressEvent.lengthComputable) {
        // 属性lengthComputable主要表明总共需要完成的工作量和已经完成的工作是否可以被测量
        // 如果lengthComputable为false,就获取不到progressEvent.total和progressEvent.loaded
      }
    },
    data: submitData
  });
}


export function upload(data) {
  data = data || {};
  const formData = new FormData();
  Object.keys(data).forEach(v => {
    formData.append(v, data[v]);
  });
  $.ajax({
    url: '/api/upload',
    type: 'post',
    dataType: 'text',
    processData: false,
    contentType: false,
    data: formData,
    xhr() {
      let xhr = new XMLHttpRequest();
      // 使用XMLHttpRequest.upload监听上传过程,注册progress事件,打印回调函数中的event事件
      xhr.upload.addEventListener('progress', function(e) {
        // IE10+
        // loaded代表上传了多少
        // total代表总数为多少
        let progressRate = (e.loaded / e.total) * 100 + '%';
        console.log(e, '上传', progressRate);
      });

      // 下载
      xhr.addEventListener('progress', function(e) {
        // IE10+
        // loaded代表上传了多少
        // total代表总数为多少
        let progressRate = (e.loaded / e.total) * 100 + '%';
        console.log(e, '下载', progressRate);
      });

      return xhr;
    },
    success() {
      console.log(1111);
    }
  });
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值