今天做了一个图片上传的功能 axios请求 参数第一次这样传 好激动 记录一下
formData.append里面是需要传递的参数~
//上传
upfile1(e) {
//添加请求头
var formData = new FormData();
formData.append("file", e.target.files[0], e.target.files[0].name);
formData.append('sscale',0);
formData.append('qscale',0);
//添加请求头
let config = {
headers: { "Content-Type": "multipart/form-data" }
};
this.$axios
.post(process.env.VUE_APP_dfs + "/fs/uploadsmall", formData, config)
.then(result => {
// console.log(result)
if(result.data.code == '200'){
// console.log(result);
this.fid = result.data.data.fid;
// console.log(e.target.files[0])
this.upImg = result.data.data.url;
// console.log(this.upImg)
this.idBaiDuOcr1(1);
}else if(result.data.code == '400'){
this.$toast('图片超过最大限制10M,上传失败。 参考解决方案: 1: 手工裁剪图片中多余部分 2: 图片发到微信聊天页面, 重新保存到本地,上传保存后的图片');
}
});
},
更新 更新
要求传 form Data 形式的参数 以下图片这种
代码 这样写就ok了
// api.js 登录接口
export const login1 = params => {
return service.post(`678/ajax_login_a`, params);
};
// 组件引用
import { login1 } from './../../api/api';
// 使用
let formData = new FormData();
formData.append('password', this.form.password);
formData.append('captcha', this.form.captcha);
formData.append('account', this.form.account);
login1(formData).then(result => {
console.log(result)
});
注意点:不许加括号 否则会出现下面这种情况
如果没有api.js 在组件里面就是以下这种写法
import axios from 'axios';
axios({
method: "POST",
url: `${this.ip}/12345/ajax_login_a`,
data: {
password: this.form.password,
captcha: this.form.captcha,
account: this.form.account,
},
// 重要 必须写
transformRequest: [
function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
ret = ret.substring(0, ret.lastIndexOf('&'));
return ret
}
],
// headers: {
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
// 'Accept': 'application/json, text/javascript, */*; q=0.01',
// 'Authorization': 'captcha=cadbf31548374e628a4d67e1be5f9a33'
// }
}).then(function (res) {
console.log(res);
});