【问题标题】:jQuery getJSON problem when request is not returned as JSON请求未作为 JSON 返回时的 jQuery getJSON 问题
【发布时间】:2010-06-18 01:22:37
【问题描述】:

我有以下代码

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

如果由于某种原因 strUrl 返回的字符串不是 JSON 格式,则回调函数永远不会被调用。有没有办法知道响应是 json 格式还是帖子中出了什么问题?

【问题讨论】:

  • 我真的不认为,评估(并因此执行)一个你不能信任的结果是个好主意(你甚至不知道,如果它在语法上是正确的)!它可以做任何事情。
  • @chris_l 绝对可以,但是发生了一些错误,并且预期的结果格式错误。您应该防止这种情况发生,这是正确的,但是存在错误。请记住,“在理论上,实践和理论是相同的;在实践中,它们不是”。你应该尽可能地覆盖所有的基地。
  • @Seb 完全同意,因为我对此的态度完全一样!但在这种情况下,在我看来,好像 OP 可能 距离接受任何语法正确的 JavaScript (即使内容是恶意的)只有一步之遥。 eval 不幸的是,它不仅采用 JSON 数据,还采用任何 JavaScript。所以我认为,这个警告是有道理的。
  • @chris_l 绝对是,eval 是 baaaaad :)

标签: jquery json getjson


【解决方案1】:

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

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

【讨论】:

  • 是的,我认为这是唯一的方法。我会得到结果,检查它的格式是否正确并继续。谢谢
猜你喜欢
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 2020-06-30
  • 1970-01-01
  • 2012-12-04
相关资源
最近更新 更多