好吧,我想在填写完字段后尝试编辑一位导师,但是当我尝试对其进行编辑并保存成文法时,出现了错误,我是React的新手,我尝试了其他方法,但是它们没有用... 我的错误是“未处理的拒绝(SyntaxError):JSON输入意外结束”。
这是我执行PUT方法的代码:
private handleSave(event) {
event.preventDefault();
const data = new FormData(event.target);
if (this.state.autorData.idAutor) {
fetch('api/Autor/Edit', {
method: 'PUT',
body: data,
}).then((response) => {
data.forEach(res =>
console.log(res));
response.json();
})
.then((responseJson) => {
this.props.history.push("/fetchautor");
})
}
// POST request for Add employee.
else {
fetch('api/Autor/Create', {
method: 'POST',
body: data,
}).then((response) => response.json())
.then((responseJson) => {
this.props.history.push("/fetchautor");
})
}
}
这是我创建表单的代码
private renderCreateForm(autorList: Array<any>) {
return (
<form onSubmit={this.handleSave} >
<div className="form-group row" >
<input type="hidden" name="libroId" value={this.state.autorData.idAutor} />
</div>
<div className="container">
<div className="row">
<div className="col-sm">
< div className="form-group row" >
<label className=" control-label col-md-12" htmlFor="nombre"><b>Nombre:</b></label>
<div className="col-md-10">
<input className="form-control" type="text" name="nombre" defaultValue={this.state.autorData.nombre} required />
</div>
</div >
</div>
<div className="col-sm">
< div className="form-group row" >
<label className=" control-label col-md-12" htmlFor="anoNacimiento"><b>Año Nacimiento</b></label>
<div className="col-md-10">
<input className="form-control" type="text" name="anoNacimiento" defaultValue={this.state.autorData.anoNacimiento} required />
</div>
</div >
</div>
<div className="col-sm">
< div className="form-group row" >
<label className=" control-label col-md-12" htmlFor="ciudad"><b>Ciudad</b></label>
<div className="col-md-10">
<input className="form-control" type="text" name="ciudad" defaultValue={this.state.autorData.ciudad} required />
</div>
</div >
</div>
</div>
</div>
<div className="form-group">
<button type="submit" className="btn btn-default btnCafe">Guardar</button>
<button className="btn btnCafe" onClick={this.handleCancel}>Cancelar</button>
</div>
</form>
)```
答案 0 :(得分:0)
您忘记在第一条链中返回诺言的结果。试试这个:
fetch("api/Autor/Edit", {
method: "PUT",
body: data
})
.then(response => {
return response.json();
})
.then(responseJson => {
console.log('Response as JSON', responseJson);
this.props.history.push("/fetchautor");
});