通过JSONP获取数据时检测SyntaxError

时间:2013-01-25 17:21:05

标签: jquery google-chrome jsonp syntax-error

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

当我执行类似这样的事情时

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

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

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

1 个答案:

答案 0 :(得分:0)

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

    }
}