Angular $http 请求超时未在 iOS 10 cordova 上的错误函数中捕获
Angular $http request timeout not caught in error function on iOS 10 cordova
这发生在 Safari iOS 10 Cordova:6.3.1
请求使用 Angular$http,未调用错误函数
$http.get("http://10.255.255.1").then(function(res){
console.log("res: " + res);
},function(err){
console.log("err: " + err);
});
Promise {$$state: {status: 0}, then: function, catch: function, finally: function}
控制台:加载资源失败:请求超时。 (10.255.255.1, 第 0 行)
使用 XMLHttpRequest 的请求捕获超时错误
var xhr = new XMLHttpRequest(); xhr.onload = function () {
console.log("request finished")
};
xhr.ontimeout = function (e) {
console.log("request timeout")
};
xhr.open('GET', 'http://10.255.255.1', true);
xhr.send(null);
控制台:请求超时
仅供参考:
http://10.255.255.1 是我用来测试超时的 url。
资料来源:Artificially create a connection timeout error
XMLHttpRequest 会在 60 秒后抛出错误,即使您增加超时也是如此。
所以这是一个 iOS 10 WebView 的东西,我相信这是不可配置的。
在 Angular 中,如果您提供的超时 属性 小于 60 秒,则会正确抛出错误。
似乎仍然是 Angular 中的错误。在 WebView 请求超时后它仍然应该抛出错误。
这发生在 Safari iOS 10 Cordova:6.3.1
请求使用 Angular$http,未调用错误函数
$http.get("http://10.255.255.1").then(function(res){
console.log("res: " + res);
},function(err){
console.log("err: " + err);
});
Promise {$$state: {status: 0}, then: function, catch: function, finally: function}
控制台:加载资源失败:请求超时。 (10.255.255.1, 第 0 行)
使用 XMLHttpRequest 的请求捕获超时错误
var xhr = new XMLHttpRequest(); xhr.onload = function () {
console.log("request finished")
};
xhr.ontimeout = function (e) {
console.log("request timeout")
};
xhr.open('GET', 'http://10.255.255.1', true);
xhr.send(null);
控制台:请求超时
仅供参考: http://10.255.255.1 是我用来测试超时的 url。 资料来源:Artificially create a connection timeout error
XMLHttpRequest 会在 60 秒后抛出错误,即使您增加超时也是如此。
所以这是一个 iOS 10 WebView 的东西,我相信这是不可配置的。
在 Angular 中,如果您提供的超时 属性 小于 60 秒,则会正确抛出错误。
似乎仍然是 Angular 中的错误。在 WebView 请求超时后它仍然应该抛出错误。