【问题标题】:How do you handle an "Access to restricted URI denied" error in JavaScript when using XMLHttpRequest?使用 XMLHttpRequest 时如何处理 JavaScript 中的“访问受限 URI 被拒绝”错误?
【发布时间】:2015-10-08 03:15:28
【问题描述】:

我有以下代码:

var req = new XMLHttpRequest();
req.onload = function(){
    if (req.status === "200"){
        doSomethingWithTheReceivedData();
    }
    else {
        alert("Error msg");
    }
};

但是,当直接从我的计算机运行 index.html 时(当它没有从我的服务器提供服务时)我在 Firefox Web 控制台中得到“NS_ERROR_DOM_BAD_URI:访问受限 URI 被拒绝”,因为脚本的相对路径正在尝试访问在我的计算机上不可用(它在我的服务器上)。 现在我想正确处理此错误,因为当前当用户单击触发此代码的按钮时,没有任何反应。我已经添加了状态代码检查,但这似乎不适用于处理此错误,我假设永远不会返回请求?那么如何处理这样的错误呢?

【问题讨论】:

  • XHR 对 *file:\* 协议的调用受到限制。您需要在服务器上运行它。
  • @TaoP.R.问题似乎是关于处理这些错误,而不是阻止它们
  • 那么有没有办法处理这个错误呢?因为此代码是我的应用程序中可选功能的一部分,仅当用户从服务器使用它时才有效。用户还可以离线使用该应用程序(只需下载包含所有必要文件的 zip 存档,除了此可选功能外,它完全是客户端)。所以我想在用户离线使用应用程序时优雅地处理这个错误。
  • @Dr.Molle 不幸的是这也没有用:(

标签: javascript error-handling xmlhttprequest xmlhttprequest-level2


【解决方案1】:

send 请求时使用 try-catch:

try{
  req.send(null);
}catch(e){
 alert(e.message);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2016-12-17
    • 2010-09-08
    • 2012-03-17
    相关资源
    最近更新 更多