首页 > 解决方案 > React js 和 axios POST 请求发送空数组

问题描述

当我尝试使用 axios 发布到另一台服务器时,它首先发送 OPTIONS 请求然后 POST。当我检查网络连接时,它会发送带有我想要的字段的对象 this.state.array 是空的。

这很奇怪,因为我在发送它之前调试它不是空的?

var someProperty="value";

const objectToSend = {
  content: this.state.myArray,
  prop1: someProperty,
  abc:'3456'
};

console.log('user obj------->',objectToSend); //  everything is fine { content: Array(0), prop1: 'value', abc:'3456'}

  axios.post('http://server:8544/api/post', objectToSend)
          .then(function (response) {

            }) //  it sends { content: [], prop1: someProperty, abc:'3456'}

//更新数组状态的方法(或精确的键值对)

  processAnswer(q, a) {

var key = q;
var val = a;

this.state.myArray['\"'+key+'\"'] = val;

}

标签: reactjspostaxios

解决方案


解决了

myArray 被定义为状态 myArray 下的数组:[]

问题是 axios 没有认识到这一点,尽管 myArray 在提交之前的状态是 ["key":"value","key2":"val2"] 在提交后它会像这样发送 myArray : []

所以我将初始状态更改为 myArray : {} 现在它发送键值对象 {"key":"value","key2":"val2"} 而不是数组,一切正常


推荐阅读