0

我有一个 JavaScript 脚本,它使用 jquerypost命令登录服务器并获取令牌。我已经将我的代码包装在一个try块中,其catch块如下所示:

catch (error)
{
  alert(error.message); 
}

我的代码运行良好,但为了彻底测试,我特意更改了协议,使 url 看起来像这样:

"htt://some.domain:8080/jsonrpc"

我的代码没有捕捉到错误并显示警报。相反,Chrome 控制台显示以下错误:

XMLHttpRequest 无法加载 htt://some.domain:8080/jsonrpc。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。

我希望出现某种格式错误的 url 异常,而不是控制台中的错误。

其他故意错误(例如密码错误)的结果会导致捕获异常。

谢谢

4

1 回答 1

3

因为 Ajax 是异步的。错误发生在 try/catch 块之外。

此类错误可以在 XMLHttpRequest 中通过状态更改为 来检测0。(此状态代码还涵盖了其他一些错误状态,因此您不能准确)。

您可以传递给 jQuery ajax的error处理程序将在状态为 0 时触发。

于 2015-04-28T14:25:30.993 回答