json – Jquery在ajax调用中为多个值返回undefined
我想从Ajax调用返回多个值。 所以我根据这个页面修改了我的代码Jquery在ajax调用中返回多个值
$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "AJAX_custom_function.aspx/AJAX_GetFullName", data: '{userid: "' + arguments.Value + '"}', dataType: "json", async: false, success: function (data) { alert(data); alert(data.fullname); }, error: function (httpRequest, textStatus, errorThrown) { alert("status=" + textStatus + ",error=" + errorThrown); } });
‘alert(data)’返回{“fullname”:“Joe”,“success”:“true”}
但’alert(data.fullname)’返回undefined。 正确的值应该是Joe
我错过了什么吗? 非常感谢任何建议。
AJAX_GetFullName
_ Public Shared Function AJAX_GetFullName(ByVal userid As String) As Object Dim isValid As Boolean = False 'by default, user always not exist Dim strFullName As String = "" isValid = IsUserIDExist(userid, strFullName) If isValid Then Return "{'fullname': '" & strFullName & "', 'success': 'true' }" Else Return "{'fullname': '', 'success': 'false' }" End If End Function
试试这个。
$.ajax({ type: "POST", contentType: "application/json;", url: "AJAX_custom_function.aspx/AJAX_GetFullName", data: '{"userid": "' + arguments.Value + '"}', async: false, success: function (data) { try { // convert single quote to double quotes var msg = data.replace(/'/g, "\""); msg = $.parseJSON(msg); alert(msg.fullname); } catch (e) { alert(e.Message); } }, error:function (xhr, status, err){ alert( "status=" + xhr.responseText + ", error=" + err ); } });
无需在contentType
指定dataType
和charset
。
尝试使用:
success: function(data) { if (typeof data == 'string') { data = jQuery.parseJSON(data); } alert(data.fullname); }
要将字符串转换为Json对象,请使用JSON.parse(data)函数与Ajax调用的成功函数。 我希望这将有所帮助。