识别 Javascript 中的网络错误
Identify network error in Javascript
上下文:
编写一个基于浏览器的工具,点击许多第三方 URL,看看我们是否可以点击该 URL
约束
1. Has to be browser based
2. I don't own the URL list (read it from a server and is maintained by someone else )
3. Some of the URLs (ie the servers) are not CORs enabled.
传统上,我会使用XMLHttpRequest
并做这样的事情来查看是否存在网络错误。但是,由于这些是跨域请求,因此在预飞行步骤中失败。
到目前为止,我所做的是一个黑客。这是代码。基本上动态创建一个脚本标签,使用 src 作为我想要获取的 url。
var createScript = function(whitelist){
var src = whitelist.url;
var script = document.createElement('script');
script.setAttribute('src', src);
script.onload = function () {
whitelist.success = true;
$scope.$digest();
return;
};
script.onerror = function (foo) {
console.error(src,' ',foo);
return;
};
angular.element(document.body).append(script);
};
我看着传递给onerror
的对象,但我无法从中获得任何有用的东西,这将有助于我理解为什么失败。此外,网络错误和 403 都命中了 onerror 处理程序。就我而言,访问 URL 的成功或失败取决于网络错误,而不是例如 403。
问题
在给定的约束下,有没有办法确定成功或 失败。就我而言,成功或失败是你能不能 是否访问 URL。
我最终为此编写了一个可安装的 chrome 应用程序和一个 chrome 扩展程序。根据您的用例,可以使用任何一个。如果您想从第三方网页使用相同的功能,chromme 扩展名更多。
https://github.com/sajit/clienthealthcheck <--
https://github.com/sajit/healthcheck_api <-- 铬扩展
相关文章:
- 在fabric.js中以PNG格式下载Canvas,给出网络错误
- 如何在使用XMLHttpRequest时向用户显示实际的网络错误
- getJSON:网络错误:500 内部服务器错误
- socket.io+express网络错误:404
- xmlhttprequest:网络错误0x800c0019,访问此资源所需的安全证书无效.WINJS
- 如何解决“网络错误:404未找到 - http://localhost:50765/Scripts/jquery-1.5
- 是否有一种全局方法来捕获 javascript 中的网络错误
- 幻影 - 处理网络错误
- 条纹付款问题 - 网络错误,您尚未被扣款
- 识别 Javascript 中的网络错误
- IE11 HTTPS AJAX XMLHttpRequest:网络错误0x2eff,由于错误00002eff而无法完成操
- xmlhttprequest网络错误,可能是js/jQuery超时
- 从XMLHttpRequest send()捕获异步网络错误
- 在网络错误时中止javascript加载
- Javascript网络错误为字符串
- Angular将文件保存为csv会导致失败-只有在Chrome上才会出现网络错误
- ajax调用返回网络错误;404.
- 捕捉HTML5媒体网络错误javascript
- 这个脚本是返回网络错误的原因
- Phonegap抛出“网络错误”;立即在手机上的PHP脚本的第一个字符-在Chrome/Dreamweaver中工作良好