我是React的新手,试图将数据发布到某些API,但我无法做到这一点。这就是我尝试过的方式
import React, { Component } from "react";
class Apinew extends Component {
constructor() {
super();
this.state = {
id: '',
name: '',
quote: '',
created_on: ''
};
}
change = e => {
this.setState({
[e.target.name]: e.target.value
});
};
onSubmit = e => {
e.preventDefault();
console.log(this.state);
fetch('someAPI', {
method: 'post',
headers: { 'Content-Type': 'application/json' },
body: {
id: this.id.value,
text: this.quote.value,
author: this.name.value,
created_on: this.createdOn.value
}
});
};
render() {
return (
<div>
<form>
<input
name="id"
ref={ref => {
this.id = ref;
}}
placeholder="Enter ID"
value={this.state.id}
onChange={e => this.change(e)}
/>
<br />
<input
name="name"
ref={ref => {
this.name = ref;
}}
placeholder="Enter Name"
value={this.state.name}
onChange={e => this.change(e)}
/>
<br />
<input
name="quote"
ref={ref => {
this.quote = ref;
}}
placeholder="Enter Quote"
value={this.state.quote}
onChange={e => this.change(e)}
/>
<br />
<input
name="created_on"
ref={ref => {
this.createdOn = ref;
}}
placeholder="Created On"
value={this.state.created_on}
onChange={e => this.change(e)}
/>
<br />
<button onClick={e => this.onSubmit(e)}>Submit</button>
</form>
</div>
);
}
}
export default Apinew;
我收到此错误:
OPTIONS someAPI 405(不允许使用方法)
无法加载someAPI:飞行前响应包含无效的HTTP 状态代码405。
未捕获(承诺)TypeError:无法获取
出什么问题了?我该怎么办?
谢谢
答案 0 :(得分:2)
首先,您应该了解405 error means:
“超文本传输协议(HTTP)405方法不允许”响应 状态码指示服务器知道请求方法 但已被禁用,无法使用。
fetch调用可能没有任何问题,但是您必须查看api的要求,也许您缺少权限,但很可能该方法是私有的,因此无法使用。