【问题标题】:JS: axios POST with large nested object and form-dataJS:带有大型嵌套对象和表单数据的 axios POST
【发布时间】:2020-09-06 04:23:14
【问题描述】:

我要向 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 ...)。

【问题讨论】:

    标签: javascript post axios form-data


    【解决方案1】:

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

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

    【讨论】:

    • 没关系。甚至没有考虑过这个......如果你有时间,为什么这个工作而不是另一个工作?
    • 标题如果你想让它像你的代码一样工作,你需要像o一样更改标题。邮递员
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2021-07-08
      • 1970-01-01
      • 2019-01-17
      • 2018-02-25
      • 1970-01-01
      相关资源
      最近更新 更多