React Dropdown到API中的POST值



Iam试图将某些值从Dropdown所选值POST到API。我总是得到一个405 (Method Not Allowed)错误,而不是发布或更改值。我还通过以下方式更改了onChange事件处理程序:

  1. onChange{(e) => this.onChangeHandler(e.target.value)}
  2. onChange{() => this.onChangeHandler(e.target.value)}
  3. onChange{this.onChangeHandler}

但将所选值发布到API没有任何帮助。

我的Dropdown和onChangeHandler方法如下所示:

onChangeHandler(e) {
let fd = new FormData()
fd.append("api_value", this.state.user.value);
axios({
method: 'post',
url: `${api}/project/user`,
data: fd,
}).then(response => {
console.log(response)
})
}

<select 
value={value} 
className="form-control" 
onChange={()=>this.onChangeHandler(this.state.user.value)}>
<option value="abc">abc</option>
<option value="def">def</option>
<option value="ghi">ghi</option>
</select>

问题不在于如何调用函数。405错误是来自服务器的响应,可能与没有权限向该api发出post请求有关。话虽如此,但我认为您的#2 onChange函数不会运行,因为不会定义"e"。此外,你正在将state属性发送到api,看起来你并没有在select onChange函数中更新状态,只是将其传递给最初设置的值。我会查看api文档,看看它们是否需要请求中的授权头,并在发送到api之前console.log你的FormData,以确保你得到了正确的值。

最新更新