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指定dataTypecharset

尝试使用:

 success: function(data) { if (typeof data == 'string') { data = jQuery.parseJSON(data); } alert(data.fullname); } 

要将字符串转换为Json对象,请使用JSON.parse(data)函数与Ajax调用的成功函数。 我希望这将有所帮助。