0

我正在尝试从 .jsp 页面获取 JSON 对象。但我不知道该怎么办。我已经在谷歌上搜索了一段时间,但我无法找出这个 getJSON 函数的作用。

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

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

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

不打印带有“JSON 内容”的警报。

<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);

    }
4

3 回答 3

3

需要检查的几件事:

webapp 是否也在 localhost:8080 上运行?如果不是,您可能与同源策略发生冲突,在这种情况下,您需要编码为 jsonp。

您还应该检查 firebug/inspect element/whatever 以确保您实际上从您的请求中得到了返回的东西。您可以在网络或资源选项卡中执行此操作,具体取决于您使用的浏览器。还要在警报之前在脚本中设置断点并检查 json 对象以查看是否返回了任何内容。

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

于 2012-05-30T00:30:44.560 回答
2

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

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

于 2012-05-30T00:34:21.827 回答
2

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

响应将以 JSON 格式出现。getJSON方法是 jQuery ajax 的一种缩写形式,其数据类型为json. 数据类型决定了从 ajax 调用接收结果的格式。

传递给函数的参数“json”是 JSON 对象吗?

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

这个函数是异步部分吗?

正如我之前告诉过你的,getJSON它是 jquery ajax 的缩写,数据类型为 Json。它是异步的。

于 2012-05-30T00:36:12.957 回答