JS:带有大型嵌套对象和表单数据的 axios POST

JS: axios POST with large nested object and form-data

我要 post 一个 Axios 请求,因为使用 get 会导致 414 错误。 这是对象:

rows= {
  0 : {
    "name":"Thor",
    "status":"active",
    "email":"somuchlightning@kaboom.io",
  },
  1 : {
    "name":"Mesa",
    "status":"active",
    "email":"big-mesa@tundra.com",
  },
  2 : {
    "name":"Jesper",
    "status":"stdby",
    "email":"jes@slap.net,
  },
}

这只是对象格式的一个示例。实际中有 400 多个元素,因此 post 而不是 get。我在正确构建表单数据时遇到了问题。这是我拥有的:

let data = new FormData();
Object.keys(rows).forEach(key => data.append(key, rows[key]));  //  <--- this doesn't do
data.set('target', target);  //  <---- this comes through just fine

axios({
  method: 'post',
  url: 'byGrabthorsHammer.php',
  data: data,
  headers: {'Content-Type': 'multipart/form-data'}
}).then(function(response) {
  if (response.error) {
    console.log('failed to send list to target');
    console.log(response);
  } else {
    console.log('response: ');
    console.log(response);
  }        
});

通过的只是 [Object][Object]' when ivar_dump($_POST);`。这不是我想要的。我怎样才能正确地重写它以便将数据发送到另一端(如 GET...)。

您可以尝试将数据字符串化。 JSON.stringify(数据)

哟兄弟,POST 是为了插入新东西,而不是做 post 你需要一个补丁 axios.patch 基本一样。它不会解决你的问题。 要解决此问题,您需要将 Content-Type 设置为 application/json,然后再

axios.post(url, data: JSON.stringify(bigObject))
   .then(Rea=>Rea)