Javascript 如何从fetch和Promises中获取HTTP错误详细信息和文本?
很多帖子、问题和文章都解释了如何处理fetch请求中的HTTP错误,但解决方案只指向Javascript 如何从fetch和Promises中获取HTTP错误详细信息和文本?,javascript,reactjs,error-handling,fetch,Javascript,Reactjs,Error Handling,Fetch,很多帖子、问题和文章都解释了如何处理fetch请求中的HTTP错误,但解决方案只指向日志记录,或者只使用答案文本,但我希望获得响应详细信息(状态+状态文本)和响应文本(由服务器提供) 我想要一个通用的fetch\u api,我可以在我的不同组件中使用它。对于有效响应,它正在工作,但对于错误,我无法从服务器获取详细信息+文本,因为我需要返回一个拒绝的承诺,但我无法使其工作,以下是我尝试获取的 答复.状态 response.statusText response.url response.text
日志记录
,或者只使用答案文本,但我希望获得响应详细信息(状态+状态文本)和响应文本(由服务器提供)
我想要一个通用的fetch\u api
,我可以在我的不同组件中使用它。对于有效响应,它正在工作,但对于错误,我无法从服务器获取详细信息+文本,因为我需要返回一个拒绝的承诺
,但我无法使其工作,以下是我尝试获取的
- 答复.状态
- response.statusText
- response.url
- response.text()//这是一个承诺,我无法得到它和详细信息
res.text()
promise,并在i中返回promise.reject()
static fetch_api(url, method = 'get') {
return fetch(url, {method: method})
.then(res => {
if (res.ok) return res.json();
throw res;
})
.then(result => result)
.catch(error => error.text().then(errormsg => Promise.reject("[" + error.status + ":" +
error.statusText + "] while fetching " + error.url + ", response is [" + errormsg+"]"))
)
}
像
App.fetch_get(host + "/status")
.then(result => this.setState({items: result}))
.catch(error => this.setState({error: error}}))
App.fetch_get(host + "/status")
.then(result => this.setState({items: result}))
.catch(error => this.setState({error: error}}))