我正在尝试从.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);
}
答案 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。 这是异步的。