React js 和 axios POST 请求发送空数组
Posted
技术标签:
【中文标题】React js 和 axios POST 请求发送空数组【英文标题】:React js and axios POST request sends empty array 【发布时间】:2019-02-12 20:38:46 【问题描述】:当我尝试使用 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;
【问题讨论】:
没有任何显示可以告诉我们为什么它不应该为空 请分享您在哪里更新您的状态。这会很有帮助POST
请求是在进行还是在 OPTIONS
请求之后停止?
子组件从主类接收方法,然后它们将这些更改发送回位于发生 post 的同一类中的方法,它被称为 processAnswer @MithunGS Post 继续并返回 200,其他值除了数组设置成功
你在哪里设置array
的值?
【参考方案1】:
已解决
myArray 被定义为状态下的数组 我的数组:[]
问题是 axios 没有认识到这一点,尽管 myArray 在提交之前的状态是 ["key":"value","key2":"val2"] 在提交后它会像这样发送 myArray : []
所以我将初始状态更改为 myArray : 现在它发送键值对象 "key":"value","key2":"val2" 而不是数组,一切正常
【讨论】:
以上是关于React js 和 axios POST 请求发送空数组的主要内容,如果未能解决你的问题,请参考以下文章
React.js - 如何使用 axios POST 方法将数据从 div 传递到函数?
POST 请求适用于 Postman,但不适用于 axios.post()
如何使用自定义 React 钩子通过 Axios 发出 POST 或 DELETE 请求