在我的混合应用程序中(使用jQM作为框架),我尝试从服务器检索数据。
我尝试了 $。发布和 $ .ajax 方法。
使用 $。ajax ,我可以使用“data [0] .name”访问返回数据。
使用 $。发布和完全相同的返回数据,当我尝试使用“data [0] .name”访问数据时,我得到“undefined”
我的代码有效($ .ajax)并向我显示正确的数据:
$(document).on('pagebeforeshow', '#restaurantList', function() {
$.ajax({
url: "http://mydomain.com/api/restaurant/allstate/allcuisine",
type: "POST",
dataType: "json",
success: function (data) {
alert(data[0].restaurant_id);
}
});
});
我的代码不起作用($ .post)并给我“未定义”:
$(document).on('pagebeforeshow', '#restaurantList', function() {
$.post("http://mydomain.com/api/restaurant/allstate/allcuisine",
function(data){
alert(data[0].restaurant_id);
});
});
为什么?我需要使用 $ .post ,但我无法访问数据。我检查了返回JSON,两种方法都返回完全相同的数据。
请指出这两者之间的区别以及为什么我从 $ .posst 方法获得“undefined”。谢谢。
答案 0 :(得分:1)
使$ .post能够正常使用JSON返回数据。必须指定dataType。
根据jQM文件:
dataType类型:String服务器所需的数据类型。 默认值:智能猜测(xml,json,脚本,文本,html)。
但它的智能猜测似乎并不够智能。
为此,请添加" json",以下示例:
$(document).on('pagebeforeshow', '#restaurantList', function() {
$.post("http://mydomain.com/api/restaurant/allstate/allcuisine",
function(data){
alert(data[0].restaurant_id);
}, "json");
});