我正在尝试显示从ajax调用中检索的JSON数据,但我无法显示任何数据,尽管获得JSON对象就好了。
<!DOCTYPE html>
<head>
<title></title>
<script src="jquery.js"></script>
</head>
<script>
$(document).ready(function(){
$.getJSON("http://servername:10000/_vti_bin/webservice/service1.svc/getListTitle",
{
username: "a",
password: "b",
list: "calendar",
},
function(data) {
alert(1);
// and the rest
}
)
});
</script>
<body>
</body
</html>
我没有得到任何警报但是使用Fiddler我可以看到JSON对象。
{"GetListTitleResult":"Calendar"}
那我在这里错过了什么?任何帮助赞赏。提前谢谢。
编辑:似乎代码不会一直到函数(数据)部分。但是firebug也没有显示任何语法错误。我仍然通过Fiddler获得JSON响应。这里有什么帮助吗?答案 0 :(得分:4)
以这种方式更改您的代码 -
$.getJSON("http://servername:10000/_vti_bin/webservice/service1.svc/getListTitle",
{
username: "a",
password: "b",
list: "calendar",
},
function(data)
{
$.each(data, function(i,item)
{
alert(item);
});
});
在我看来,这些是您犯下的错误 -
data
本身就是一个集合,因此您无需获取data.items
。只需将data
原样传递给each
函数。each
迭代器的回调将为集合中的每个项目传递key
和value
。因此,i
将为GetListTitleResult
,item
将为Calendar
。答案 1 :(得分:2)
这不是getJSON()
的方法签名。您无需使用success:
键入成功回调。你还有一些括号,括号和分号太多了。将其更改为
$.getJSON("http://servername:10000/_vti_bin/webservice/service1.svc/getListTitle",
{
username: "a",
password: "b",
list: "calendar",
format: "json"
},
function(data) {
console.log(data);
// and the rest
}
);
答案 2 :(得分:0)
如果您的方法如下:
public string getListTitle(string username, string password, string list, string format)
然后你的ajax数据很好。如果是这样的话:
public string getListTitle(MyObject data)
然后你需要这个:
{data: {
username: "a",
password: "b",
list: "calendar",
format: "json"
}
}
编辑:
function(data) {
alert(data.GetListTitleResult);
});