我使用jQuery获取名称为JSON字符串列表 -JSON返回AJAX后jQuery的不确定
`
$.ajax({ type: 'POST', url: "../Names.aspx", dataType: 'json', contentType: "application/json; charset=utf-8", data: "NAME=ALL_PROFILES", success: function (data, textStatus, jqXHR)` {
var html = '';
var obj = jQuery.parseJSON(data);
$.each(obj, function (key, val) {
html += '<option value="' + val + '">' + val + '</option>';
alert("Success" + val);
})
$('#selName').append(html);
$('#selName').selectmenu('refresh');
},
error: function (jqXHR, textStatus, errorThrown) {
alert('Error ' + jqXHR.val + errorThrown.val + textStatus.val);
}
});
后端是一个asp.net页面,当我调试我得到字符串为"{"Name":["Maria","John","Raj","Rosh","Tony","Name","test3","test4","test5","test6"]}"
,我把它放在JSONLint并验证。它在上面的AJAX请求中返回undefined
错误。如果我尝试使用单个字符串"Name":"John"
,它可以很好地工作。用于添加选项的函数对于JSON字符串数组不正确(我将在它进入成功块后处理它),但我不明白为什么当它返回有效的JSON字符串时返回undefined
错误。任何帮助,将不胜感激。
我认为你是我mistake.WHen用“名”:“约翰”进入成功的块。 parseJSON是在Sucess block.It不会被调用 – 2012-04-18 03:02:53
只要确保您返回有效的JSON并删除行:'var obj = jQuery.parseJSON(data);'和工作/循环的'data'变量,而不是应该管用。 – stewe 2012-04-18 03:06:45
我试过了。实际上我只是在成功block中放了一个提醒。它根本没有被调用 – 2012-04-18 03:10:47