form表单无刷新上传小技巧

去年有做阿里云直传,分享一些需要注意的小地方
let formData = new FormData();  new一个formData  或者  new FormData('#upload').files[0];
formData.append('OSSAccessKeyId', data.data.access_key_id); 参数加进去
formData.append('policy', data.data.policy);
formData.append('Signature', data.data.signature);
formData.append('key', data.data.file_prefix + files[0].name);
formData.append('file', files[0])  选择的文件
sessionStorage.setItem('key', data.data.file_prefix + files[0].name);
Ajax.ajax({
  url: uploadSrc,
  data: formData,
  type: 'post',
  dataType: 'json',
  cache: false,
  processData: false, //必选, 是file 上传进程
  contentType: false, //必选, 405错误根源
  headers: {
    'X-Requested-With': 'XMLHttpRequest', //options请求必带
  },
}).done(() => {
  const imgUrl = `${uploadSrc}/${sessionStorage.getItem('key')}`
  insert(imgUrl)
  console.log(imgUrl)
})


需要设置content-type为multipart/form-data,jq的contentType设为false是为了避免jq重写原来的content-type,那么就是说以一个new FormData()构造出来的对象作为post的数据发送,浏览器会自动将content-type设为multipart/form-data,并且自动加上boundary。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值