javascript - iOS chrome - 翻译页面时 xhr.timeout 抛出错误
问题描述
这是一个非常超现实的问题。当我在 iOS 上使用 chrome 时,我无法设置 xhr.timeout。它抛出InvalidAccessError: The object does not support the operation or argument.
您可以通过以下方式重现它:https : //viktorh.net/chromebug.html 在 iOS 上的 chrome 中。然后使用 chrome 的内置翻译器翻译页面 - 现在调用 XHR.timeout 失败。
有谁知道为什么会这样?如果它是 chrome 中的错误,有人知道解决方法吗?您可以在哪里报告此类问题?
解决方案
这很奇怪。我可以重现这个问题,它看起来确实像是 iOS 上 Chrome 中的一个小众错误。默认情况下,XMLHttpRequest 具有无限超时,但您可以通过手动创建超时来中止请求来解决此问题。为了安全起见,当请求成功或失败时,我会在加载端清除此超时。像这样的东西:
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
var timeout;
oReq.addEventListener("loadend", function() {
// request over - clear timeout
clearTimeout(timeout);
});
// set a timeout to abort the request
timeout = setTimeout(function() {
oReq.abort();
// we timed out
},20000);
oReq.open("GET", "/");
推荐阅读
- android - 如何从图库中获取所选图像的路径?
- sql - 根据从列或另一个表中的搜索返回一个表中的行并将这些行写入第三个表
- java - 导入 JHipster 项目后 Eclipse IDE 中的警告
- serialization - Hazelcast 的 DataSerializable writeData 和 readData 的序列化单元测试
- python - 无阻塞地服务单个 HTTP 请求
- winapi - 在什么情况下 RmGetList 为 lpdwRebootReasons 输出参数返回 2?
- ssh - GCP 连接失败 - SSH - 我们无法在端口 22 上连接到 VM
- javascript - 如何使用 Web 组件构建应用程序
- twilio - 致电我们团队中的代理(SIP 客户端),然后将他们连接到客户(PSTN 号码)
- javascript - Google Chrome 扩展程序 - 我如何计算被阻止的广告?