使用ajax请求post,请求体为图片,控制台得到了响应结果,状态为200,但then代码块的内容无法执行,代码如下
methods: {
submitUpload() {
if(this.img!=''){
this.loading = true;
let param = new FormData() // 创建form对象
param.append('file', this.img, this.img.name) // 通过append向form对象添加数据
let config = {
headers: {'Content-Type': 'multipart/form-data'}
}
this.$axios.post(this.action,param, config).then(response => {
console.log(response);
this.result = response.data;
this.loading = false;
this.img='';
}).catch(error=>{
console.log(error);
})
}else{
this.$refs.upload.submit();
}
},
console无输出,且前端不显示结果,但后台有响应
有说ajax是异步操作,但修改代码如下还是一样的结果
let post = ()=>{
return new Promise(resolve => {
this.$axios.post(this.action,param, config)
.then(response => {
resolve(response);
})
});
}
this.result = await post();
this.loading = false;
this.img=''
console.log(this.result);
猜测是then没有执行,请问大家是否有解决方法
不一定吧,你看看你的响应也不是json格式的呀,你是不是没有对后端的结果进行封装成json字符串呀,你后端的数据格式一般应该是
{
"code":200,"data":{}
}
这样的
看下hearders
ajax默认是异步操作,你改为同步试试
url : "",
async: false,
type: "",
contentType: "",
可参考如下链接https://blog.csdn.net/m0_48275578/article/details/121574256