我没有从getJSON函数获取任何数据

时间:2012-05-30 00:25:47

标签: javascript jquery ajax json

我正在尝试从.jsp页面获取JSON对象。但我不知道该怎么做。我现在已经把它搞定了一段时间,但是我找不到这个getJSON函数的功能。

它是否返回JSON对象的字符串表示形式?

或者是传递给JSON对象函数的参数'json'吗?

函数(第二个参数)是否等同于使用XMLHttpRequests时写入的函数?换一种说法;这个函数是异步部分吗?

带有“JSON stuff”的警报不会打印。

<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
    function checkUni() {

        var URL = "http://localhost:8080/GradSchoolApp/test.jsp";

        var jso = $.getJSON(URL, function(json) {
            alert("JSON stuff " + json.name);
        });

        alert(jso);
        //alert(jso.name);

    }

3 个答案:

答案 0 :(得分:3)

要检查的一些事项:

webapp是否也在localhost:8080上运行?如果没有,您可能会违反相同的原始策略,在这种情况下,您需要编码为jsonp。

您还应该检查firebug / inspect元素/以确保您确实从请求中返回了一些内容。您可以在网络或资源选项卡中执行此操作,具体取决于您使用的浏览器。在警报之前在脚本中粘贴断点并检查json对象以查看是否返回了任何内容。

第二个警报未触发,因为调用它时json对象尚不存在。

答案 1 :(得分:2)

getJSON的相关文档是here。回调参数(您命名为json)是已解码的数据(即它是JavaScript对象,而不是字符串)。

至于为什么你的警报没有做任何事情,请参阅Charles Bandes的回答。为了更好地调试代码,您还可以使用console.log(适用于Firebug或Chrome),和/或设置处理程序ajaxError - 所以如果问题出在您的请求中,您可以收到通知错误(而不是默认情况下浏览器忽略它)。

答案 2 :(得分:2)

  

它是否返回JSON对象的字符串表示形式?

响应将以JSON格式显示。 getJSON方法是jQuery ajax的简短形式,数据类型为json。数据类型决定从ajax调用接收结果的格式是什么

  

是传递给JSON函数的参数'json'   对象

回调函数中的变量json将从您的ajax调用中获取响应。数据应该在有效的JSON文档中(如果您的服务器页面正确返回)

  

这个函数是异步部分吗?

正如我之前所说,getJSON是jquery ajax的缩写,数据类型为Json。 这是异步的。