我正在尝试使用 Http 服务发出 Web 请求。请求失败(如预期的那样)并返回 403。我希望 onError 处理程序会执行,但事实并非如此。异常被抛出并且从未被捕获。
_http(url: '/widgets/shiny-trinket', method: 'PUT', data: 'some malformed data')
.then((resp) => successHandler,
onError: (resp) {
// why aren't we getting here?
displayErrorMessage();
});
抛出的异常(从控制台):
Failed to load resource: the server responded with a status of 403 (Forbidden)
http://localhost/widgets/shiny-trinket
Instance of '_XMLHttpRequestProgressEvent'
STACKTRACE:
null
我做错了什么吗?或者这是一个错误?
更新
我也试过下面的方法,还是不行。
_http(url: '/widgets/shiny-trinket', method: 'PUT', data: 'some malformed data')
.then((resp) => successHandler)
.catchError((e) {
// why aren't we getting here?
displayErrorMessage();
});
最佳答案
我刚刚尝试了问题 How do I get Geolocation API to work in Dartium? 中的示例这会产生 403 错误并打印 catchError 中的错误消息。
window.navigator
.geolocation.getCurrentPosition()
..then((pos) {
window.alert(pos.toString());
})
..catchError((PositionError error) {
window.alert("Error code: ${error.code}, Error message: ${error.message}");
})
..whenComplete(() => window.alert("complete"))
;
关于dart - 为什么 onError 处理程序不在 Http.call() future 触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20822582/