正常情况上传文件应该new 一个 formData, 是一个binary,二进制
let params = new FormData();
params.append('file', this.file);
const url = this.$http.adornUrl('uploadurl', 'proxyUpload')
this.$http({
url,
method: 'post',
data: params,
})
如果params不用formData,上传的file是一个类似这样子的东西,是一个json,而且只留下了uid,其他的key值没有了
const params = {
file: this.file,
}
// let params = new FormData();
// params.append('file', this.file);
const url = this.$http.adornUrl('uploadurl', 'proxyUpload')
this.$http({
url,
method: 'post',
data: params,
})
那么我想,在transfrom中加上encodeURI可不可以呢,传参结果是这样子的,他是一个 可见它并不能完美的替代formData
const params = {
file: this.file,
}
// let params = new FormData();
// params.append('file', this.file);
const url = this.$http.adornUrl('uploadurl', 'proxyUpload')
this.$http({
url,
method: 'post',
data: params,
transformRequest: [
function(data) {
let ret = '';
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&';
}
return ret;
}
],
})