json-对于ajax调用中的多个值,jQuery返回未定义 [英] json - Jquery return undefined for multiple values in ajax call

查看:59
本文介绍了json-对于ajax调用中的多个值,jQuery返回未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从Ajax调用返回多个值.因此,我根据此页面 Jquery在ajax调用中返回多个值来修改了代码

I want to return multiple values from Ajax call. So I modified my codes based on this page Jquery return multiple values in ajax call

$.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)' returns {"fullname": "Joe", "success" : "true"}

但是'alert(data.fullname)'返回未定义.正确的值应该是Joe

But 'alert(data.fullname)' returns undefined. The correct value should be Joe

我错过了什么吗?任何建议都非常感谢.

Did I missing something? Any advice is very much appreciated.

AJAX_GetFullName

AJAX_GetFullName

<System.Web.Services.WebMethod()> _
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.

这篇关于json-对于ajax调用中的多个值,jQuery返回未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆