当我尝试使用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;
}
解决了
myArray被定义为状态myArray下的数组:[]
问题是,axios没有认识到这一点,虽然post之前myArray的状态是[“key”:“value”,“key2”:“val2”]提交之后会像这样发送myArray:[]
所以我将初始状态更改为myArray:{}现在它发送键值对象{“key”:“value”,“key2”:“val2”}而不是数组,一切正常