$.post("http://10.0.1.101:9000/search/", {q: ""+inputString+""}, function(data){
if(data.length >0) {
alert(data);
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
alert(data) gives me :
{"result": ["taxo", "tere", "tuy"], "success": "True"}
但是我希望警报只给我["taxo", "tere", "tuy"]
这个值。 alert(data['result'])
给了我未定义的值。
答案 0 :(得分:1)
您需要将代码更改为:
$.post("http://10.0.1.101:9000/search/", {q: ""+inputString+""}, function(data){
if(data.length > 0) {
alert(data);
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
},'json');
注意$ .post调用的'json'部分 - 它告诉jQuery在结果中期望json,并将其解析为可以按照你的意愿访问的javascript对象。
答案 1 :(得分:0)
我认为您的数据是以字符串形式返回的。使用$ .post({})时,您需要告诉jQuery您期望JSON格式的数据:
$.ajax({dataType: json, type: post, ...});
答案 2 :(得分:0)
data.result
会为您提供列表,因此您可以:
alert(data.result.join(','));
还要确保在服务器上指定了正确的内容类型:application/json
或jquery不会将结果解析为JSON对象。如果您无法控制服务器,则可以在客户端上指定dataType
参数:
$.ajax({
url: 'http://10.0.1.101:9000/search/',
data: { q: inputString },
dataType: 'json',
success: function(data) {
if(data.result > 0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data.result.join(','));
}
}
});