$ .getJson()问题并返回一个未定义的值

时间:2010-07-28 18:29:16

标签: json jquery

我有一个生成JSON对象的php脚本。

在我的jquery中,我使用此代码来调用php脚本。

  $.getJSON("/st/std.php",
   function(data){
    alert(data);
       $("myspan").text(data);
   }
  );

如何从PHP文件中编码的JSON中获取数据。在表单中输入一些代码,这些代码将执行ajax查找到php文件这是在php中生成它的Json对象

假如我们在文本框中输入“AAA”,它应该获取“AAA-ANAA”。它应该搜索JSOn编码对象并获取标签。

[{"label":"AAA-ANAA (PF)","value":"AAA"},
{"label":"AAB-ARRABURY (AU)","value":"AAB"},
{"label":"AAC-AL ARISH (EG)","value":"AAC"},
{"label":"AAE-ANNABA (DZ)","value":"AAE"}}

3 个答案:

答案 0 :(得分:5)

确保响应标头包含:

Content-Type: application/json

而不是

Content-Type: application/json; charset=utf-8

在IE9中,我有从$.getJSON返回的数据为undefined的经验,即使在网络窗格中您可以看到正在发出的请求以及包含所需JSON的响应正文。

答案 1 :(得分:0)

这是预期的行为。 $.getJSON会在将$.parseJSON(response)传递给您的回调之前自动调用response。您可以使用Firebug探索JSON,或者如果您已经知道JSON的格式,则可以像普通对象一样导航$('span').text(response.child[2]) ,例如,

{{1}}

答案 2 :(得分:0)

要查看实际拥有的内容(“对象对象”),请替换alert(数据); with alert(data.toSource());。

假设您的php页面返回{“a”:“value”},然后是$(“myspan”)。text(data.a);会在你的范围内坚持“价值”。

要传递参数,请将其放在查询字符串中:“/ st /std.php?param = value”。