2009-12-12 107 views
1

我正在使用jQuery来获取一些JSON数据。我将它存储在一个名为“ajaxResponse”的变量中。我不能从中取出数据点;我没有定义ajaxResponse.blah。 typeof是一个字符串。认为它应该是一个对象。无法使用jQuery查询JSON

var getData = function (url) { 
     var ajaxResponse = ""; 
     $.ajax({ 
     url: url, 
     type: "post", 
     async: false, 
     success: function (data) { 
       ajaxResponse = data; 
     } 
     }); 
     return ajaxResponse; 
    }, 

...

typeof ajaxResponse; // string 

ajaxResponse.blah[0].name // ajaxResponse.blah is not defined 

回答

1

确保指定选项dataType = json

$.ajax({ 
    url: url, 
    type: "post", 
    dataType: "json", 
    async: false, 
    success: function (data) { 
      ajaxResponse = data; 
    } 
    }); 
+0

aw man!谢谢:)我的坏,不知道去哪里 – alan 2009-12-12 18:18:49

+0

这种类型是如何发布?那会得到什么?感谢名单 – 2011-03-27 20:29:52

0

Q8编码器有它的权利,但给你一些细节:你的服务器实际上是将您已格式化为JSON的字符串传回。你需要告诉jQuery期望什么,否则它会假定它收到一个字符串。

以下添加到您的$就选择:

dataType: "json" 

此外,参考jQuery API的实例和文档这些选项。