Javascript 如何使用POST请求将动态获取的输入数据发送到服务器

Javascript 如何使用POST请求将动态获取的输入数据发送到服务器,javascript,reactjs,Javascript,Reactjs,从“React”导入React,{Component}; 从“反应路由器”导入{Link} 类Modals扩展组件{ 构造器{ 超级作物; this.state={inputuuid:, inputmajor:, inputminor:, 输入制造商:}; this.handleuid=this.handleuid.bindthis; this.handleMajor=this.handleMajor.bindthis; this.handleMinor=this.handleMinor.bin

从“React”导入React,{Component}; 从“反应路由器”导入{Link} 类Modals扩展组件{ 构造器{ 超级作物; this.state={inputuuid:, inputmajor:, inputminor:, 输入制造商:}; this.handleuid=this.handleuid.bindthis; this.handleMajor=this.handleMajor.bindthis; this.handleMinor=this.handleMinor.bindthis; this.handleManufacturer=this.handleManufacturer.bindthis; this.handleSubmit=this.handleSubmit.bindthis; 警报启动; fetchhttp://api-env.bt2qjip33m.ap-south-1.elasticbeanstalk.com/api/v1/beacons , { 方法:“post”, 标题:{ “内容类型”:“应用程序/json”, “授权”:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.Eyjfawqioi1gmyotdowqzzwm4njy4dmwndblnjgillcjlbwfci6imtrqgxpdglmzxhzxh3royw1lijois2lzag9yzisimlhdci6m30.nhw5ssov8ysziblmw2vnlg2vni3czfr-v4jeg9ubvs' }, 正文:JSON.stringify{ 名称:信标名称1234, 描述:此处为信标的信标描述, uuid:this.state.inputuuid1, 专业:this.state.inputmajor, 次要:this.state.inputminor, 制造商:this.state.inputmanufacturer, beaconType:type9, 位置:主网关8, 发言:ist, 区域:58C29C06D3EC8668030E6E } }.Then函数响应{ ifresponse.ok{ console.logresponse 返回响应; } 抛出新错误“网络响应不正常”; }.thenfunctiondata{ 控制台日志数据; } .catch函数错误{ console.log“获取操作出现问题:”+错误; }; } 手持设备{ this.setState{inputuuid:event.target.value}; } 把手主喷口{ this.setState{inputmajor:event.target.value}; } 手帕{ this.setState{inputminor:event.target.value}; } 手工制造业{ this.setState{inputmanufacturer:event.target.value}; } 把手排气管{ 警报“已提交:”+this.state.inputuuid+this.state.inputmajor+this.state.inputminor+this.state.inputmanufacturer; 违约事件; } 渲染{ 回来 信标设置 拯救 预先设置 } }
导出默认模态 您可以按如下方式创建输入字段:

<input className="form-control" type="text" value={this.state.userData.firstName} required placeholder="First Name" onChange={this.handleChange.bind(this, 'firstName')} />
对于handleChange,我们可以让它接受状态变量的动态键:

handleChange(key, e, value){
  let data = this.state.userData;
  userData[key] = e.target.value;
  this.setState({
    userData: data
  });
}

然后您只需要发布这个.state.userData。

尝试使用以下方法

fetch('https://mywebsite.com/endpoint/', {
 method: 'POST',
 headers: {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
},
body: JSON.stringify({
  firstParam: 'yourValue',
  secondParam: 'yourOtherValue',
 })
}); 

React require stringify post body data

我已经获取了输入,但问题是在将数据发布到服务器时,您是否从响应中收到任何错误消息?或者这可能是CORS的问题?取回请求在我看来不错。该令牌有效吗?您能否与邮递员再次检查服务器?请将fetch body更改为非字符串变量。您正在将字符串this.state.xxx作为值传递给您的服务器。啊,您还需要在handleSubmit中调用fetch函数!你放错地方了。只有警报,这就是为什么您只看到带有数据的警报消息!我也这么做了你说的把fetch放进handleSubmit它仍然没有向服务器发送任何数据它是get calling api,你检查过网络了吗tabserver必须设置头以便从任何地方调用
fetch('https://mywebsite.com/endpoint/', {
 method: 'POST',
 headers: {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
},
body: JSON.stringify({
  firstParam: 'yourValue',
  secondParam: 'yourOtherValue',
 })
});