当使用JSON / AJAX时,这些数据到底发送到哪里,然后我如何访问它?

时间:2011-08-11 16:02:56

标签: ajax json jquery

这是一个初学者问题。我的问题是你可以使用$ .get或$ .getJSON或$ .ajax(或其他方法)发送到服务器的数据。我不明白这些数据实际存储在何处或如何访问它。

假设我有一个名为test.json的文件,如下所示:

{
"name":"Bob",
"age":"84",
"sex":"male"
}

我希望在警报中显示此数据,以及使用$ .getJSON将新数据发送到服务器,如下所示:

$(function() {
$.getJSON("ajax/test.json",{height:"tall",shoes:"sneakers"},
  function(data) {
      alert("Data Loaded:" +data.name);
  });
});

因此警报将显示“Bob”。但是,如果将警报更改为(“Data Loaded:”+ data.height);警报会说“未定义”。所以这是一个我没有得到的基本概念 - 这些数据到底发送到哪里以及如何访问它?

2 个答案:

答案 0 :(得分:1)

你的json文件中没有定义

height,所以当你调用("Data Loaded:" +data.height);时,它确实没有任何东西可以返回。

在您的代码中,您调用了一个 get 类型的方法,该方法返回test.json中的数据。高度不在那里,所以当你去打印它时,它是未定义的。

答案 1 :(得分:0)

$ .getJSON()的第二个参数是要与URL一起传递的参数。在您的情况下,将从服务器请求的URL是

GET {REST_OF_URL}ajax/test.json?height=tall&shoes=sneakers

其中{REST_OF_URL}是从哪个网址下载javascript。

如果您希望能够在响应对象中找回高度和鞋子,则需要让服务器在使用您可用的任何服务器端语言返回到浏览器之前将这些值动态添加到JSON对象。