请求未作为JSON返回时的jQuery getJSON问题

请求未作为JSON返回时的jQuery getJSON问题,jquery,json,getjson,Jquery,Json,Getjson,我有以下代码 jQuery.getJSON(encodeURI(strUrl), {address:address,state:state, zip:zip},function(data){ alert('HELLO World!'); }); 如果由于某种原因,strUrl返回的字符串不是JSON格式,则永远不会调用回调函数。有没有办法知道响应是否是json格式的,或者帖子中是否出现了错误?jQuery.getJSON不允许您定义错误回调函数 您需要使用jQuery.ajax,将da

我有以下代码

jQuery.getJSON(encodeURI(strUrl), {address:address,state:state, zip:zip},function(data){
    alert('HELLO World!');
});

如果由于某种原因,strUrl返回的字符串不是JSON格式,则永远不会调用回调函数。有没有办法知道响应是否是json格式的,或者帖子中是否出现了错误?

jQuery.getJSON
不允许您定义错误回调函数


您需要使用
jQuery.ajax
,将
dataType
设置为
json
,并将剩余的配置变量设置为默认的getJSON定义。

我真的不认为,评估(并由此执行)一个您不信任的结果是一个好主意(您甚至不知道,如果语法正确的话)!它可以做任何事情。@chris_l绝对可以,但是有些事情会出错,并且预期的结果格式不好。你应该防止这种情况发生,没错,但是bug是存在的。记住,“在理论上,实践和理论是一样的;在实践中,它们不是”。“你应该尽可能地把所有的基础都包括进去。”塞布完全同意,因为我在这个问题上的态度完全相同!但在这种情况下,我觉得OP离接受语法正确的JavaScript(即使内容是恶意的)只有一步之遥
eval
不幸的是,它不仅获取JSON数据,还获取任何JavaScript。所以我认为,这个警告是有道理的。@chris_l绝对,
eval
is baaaad:)是的,我认为这是唯一的办法。我会得到结果,检查它的格式是否正确,然后继续。谢谢