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 请求发送空数组的主要内容,如果未能解决你的问题,请参考以下文章

Axios 发布请求在 React JS 中不起作用

React.js - 如何使用 axios POST 方法将数据从 div 传递到函数?

POST 请求适用于 Postman,但不适用于 axios.post()

如何使用自定义 React 钩子通过 Axios 发出 POST 或 DELETE 请求

Vue.js / Vuex + axios 发送多个 PUT 请求

axios 发 post 请求,后端接收不到参数的解决方案