Axios formData不发送任何数据

时间:2020-07-23 12:40:33

标签: vue.js axios nuxt.js

我想使用Axios上传文件,但是为此我需要使用formData,我的问题是,当我使用formData时,数据根本不会发送。

这是我的代码没有 formData,它的工作正常,所有数据都已发送:

axios({
  method: 'post',
  url: jsonurl,
  data: {
      session_id: '123',
  },
  headers: {
      'Content-Type': 'multipart/form-data',
  }
})
.then((value) => {
    console.log(value); // return in console : status 200 and config: data: session_id: "123" ...
})
.catch(err=>console.error(err));

与formData相同的代码(不发送数据,$ _ GET ['id']不存在):

const formData = new FormData();
formData.append('session_id', '123');    
axios({
  method: 'post',
  url: jsonurl,
  formData,
  headers: {
      'Content-Type': 'multipart/form-data',
  }
})
.then((value) => {
  console.log(value); // return in console :  status 200 but config: data: FormData {}
})
.catch(err=>console.error(err));

未发送数据,返回控制台状态200,但 config:data:FormData {} (因此没有数据),并且在后端$ _POST ['session_id']不存在,将发送该表单(我得到jsonencode返回),但是没有输入数据。

我也没有发现任何错误。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案,我的语法错误,这是一个可行的方法:

var postResults = await axios.post(jsonurl,
formData,
{
    headers: {
        'Content-Type': 'multipart/form-data'
    }
}
)
.then(function(value){
    console.log(value);

    return value;
})
.catch(function(error){
    console.log(error);
});