【问题标题】:Detecting SyntaxError when fetching data via JSONP通过 JSONP 获取数据时检测 SyntaxError
【发布时间】:2013-01-09 17:25:42
【问题描述】:

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

当我执行这样的事情时

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

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

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

【问题讨论】:

    标签: jquery google-chrome jsonp syntax-error


    【解决方案1】:

    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");
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2012-08-18
      • 2018-09-25
      • 2013-06-29
      相关资源
      最近更新 更多