我试图在反应本机中使用 Fetch api,但我遇到了一些问题。每当我尝试进行 POST 时,我都会收到"未处理的承诺拒绝"错误,指出正文不允许进行 GET 或 HEAD 重新请求。
GET方法工作得很好,它只是在POST上。
有什么想法吗?
submit_task() {
this.setModalVisible(!this.state.modalVisible);
const task = {
text: this.state.content,
date: this.state.date
}
console.log(task);
const API_URL = 'http://localhost:5000/tasks';
fetch(API_URL, {
methood: 'POST',
body: JSON.stringify(task),
headers: {
'Content-Type': 'application-json',
}
})
}
您的抓取选项中有一个拼写错误methood
应该method
。除了这个问题之外,建议从 Promise 中catch
错误,如下所示:
submit_task() {
this.setModalVisible(!this.state.modalVisible);
const task = {
text: this.state.content,
date: this.state.date
}
const API_URL = 'http://localhost:5000/tasks';
fetch(API_URL, {
method: 'POST',
body: JSON.stringify(task),
headers: {
'Content-Type': 'application-json',
}
}).catch(error => {
// Maybe present some error/failure UI to the user here
});
}
此错误是因为
您没有在 API 调用中使用 .catch 像这样使用 .catch
submit_task() {
this.setModalVisible(!this.state.modalVisible);
const task = {
text: this.state.content,
date: this.state.date
}
console.log(task);
const API_URL = 'http://localhost:5000/tasks';
fetch(API_URL, {
methood: 'POST',
body: JSON.stringify(task),
headers: {
'Content-Type': 'application-json',
}
})
.catch(error => {
console.log('found error', error)
});
}
或者在尝试并使用 catch 函数来处理异常或错误的情况下进行 api 调用。
try {
submit_task() {
this.setModalVisible(!this.state.modalVisible);
const task = {
text: this.state.content,
date: this.state.date
}
console.log(task);
const API_URL = 'http://localhost:5000/tasks';
fetch(API_URL, {
methood: 'POST',
body: JSON.stringify(task),
headers: {
'Content-Type': 'application-json',
}
})
}
}
catch(e){
console.log('found error', error)
}