2010-06-17 49 views
0

返回我有以下代码的jQuery的getJSON问题时请求不作为JSON

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

如果由于某种原因,strUrl返回一个字符串,这不是JSON格式的回调函数不会被调用。有没有办法知道响应是以json格式还是在帖子中出错?

+0

我真的不认为,评估(从而执行)你不能相信的结果是一个好主意(你甚至不知道,如果它在语法上是正确的)!它可以做任何事情。 – 2010-06-17 17:22:14

+0

@chris_l当然,但会发生一些错误,并且预期结果的格式不正确。你应该防止这种情况发生,这是正确的,但存在错误。请记住,“理论上讲,实践和理论是一样的;实际上,它们不是”。你应该尽可能覆盖你所有的基地。 – Seb 2010-06-17 17:23:38

+0

@Seb完全同意,因为我对此态度完全一致!但在这种情况下,听起来好像OP *可能仅仅是接受任何语法正确的JavaScript(即使内容是恶意的)。不幸的是''eval'不仅仅需要JSON数据,而是任何JavaScript。所以我认为,这个警告是有道理的。 – 2010-06-17 17:31:04

回答

1

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

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

+0

是的,我认为这是唯一的方法。我只是得到结果,检查它的格式是否正确并继续。谢谢 – Bathan 2010-06-17 17:38:21