jquery - 通过 JSONP 获取数据时检测 SyntaxError

标签 jquery google-chrome jsonp syntax-error

我正在尝试检测 SyntaxError使用 jQuery 通过 JSONP 访问可能格式错误的资源时。

当我执行这样的事情时

try
{
  $.ajax("http://www.google.com", {dataType:"jsonp"});
  alert("good");
}
catch(e)
{
 alert("bad");
}

我得到"good"消息连同 Uncaught SyntaxError: Unexpected token <来自www.google.com:1 。我想要得到的是"bad"信息。我正在使用 Chrome,但如果可能的话,我想要一个跨浏览器解决方案。

有没有办法抑制SyntaxError并检测返回的资源不是有效的 JSONP 文档?

最佳答案

window.onerror捕获所有 JavaScript 语法错误。您可以像这样使用它:

$.ajax("http://www.google.com", {dataType:"jsonp"});

window.onerror = function(msg, url, linenumber) {
    if((msg == "Script error." || msg == "Syntax error") &&
        url.indexOf("http://www.google.com/") == 0) {

        alert("bad");

    }
}

关于jquery - 通过 JSONP 获取数据时检测 SyntaxError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527046/

相关文章:

html - 在Chrome浏览器的子输入内部拖动时,如何滚动父容器?

google-chrome - 在 chrome-extension 上访问 https iframe 元素

javascript - JSON 数组 - 显示数据所需的帮助

php - jQuery 函数在 IE 中被触发两次...?

javascript - 如何在Ajax中绕过GET请求方法的当前页面?

jquery - 导航不会显示在 DIV 中

javascript - 为什么 Google Chrome 控制台中的常量名为 "constant variable"?

javascript - 在 Angular JS 1.6 中处理 JSONP 响应

jquery - 将 jQuery Post 发送到 Google API 时出现访问控制允许来源错误

javascript - 函数不会生成 IE7 中的选择选项