json-Jquery在ajax调用中返回未定义的多个值
我想从Ajax调用返回多个值。所以我根据这个页面修改了我的代码 'alert(data)'返回{“fullname”:“Joe”,“success”:“true”} 但是“alert(data.fullname)”返回未定义的。正确的值应为Joe 我错过什么了吗?非常感谢您的任何建议 AJAX\u GetFullNamejson-Jquery在ajax调用中返回未定义的多个值,json,jquery,Json,Jquery,我想从Ajax调用返回多个值。所以我根据这个页面修改了我的代码 'alert(data)'返回{“fullname”:“Joe”,“success”:“true”} 但是“alert(data.fullname)”返回未定义的。正确的值应为Joe 我错过什么了吗?非常感谢您的任何建议 AJAX\u GetFullName <System.Web.Services.WebMethod()> _ Public Shared Function AJAX_GetFullName(ByVal
<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_GetFullName(ByVal userid作为字符串)
默认情况下,Dim isValid为Boolean=False,用户始终不存在
Dim strFullName As String=“”
isValid=IsUserIDExist(userid,strFullName)
如果有效,那么
返回“{'fullname':'”&strFullName&','success':'true'}”
其他的
返回“{'fullname':'','success':'false'}”
如果结束
端函数
试试这个
$.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对象,请在Ajax调用的success函数中使用Json.parse(data)函数。我希望这会有所帮助。请向我展示您的
WebMethod
AJAX\u GetFullName
返回类型有问题。因为如果WebMethod
正确,则警报(数据)应向object对象发出警报。@ChristopheCVB数据类型为string@naveen您是对的,返回类型是string,这在两者之间是错误的,它为数据返回false。hasOwnProperty(“d”)感谢您的帮助。不知道为什么,我无法调用这些函数中的任何一个$.parseJSON jQuery.parseJSON JSON.parse调用上述任何函数后,警报将停止工作。真奇怪。我使用的是jQuery1.4.2。这有关系吗?请粘贴您的AJAX\u GetFullName
methodEdited。请参考上面。你就是那个男人,问题解决了。我的错,我不知道是单引号导致了问题。在我运行这一行:data=JSON.parse(data)之后,警报停止工作already@Alfred:并非所有浏览器都支持JSON。您可能需要添加对的引用,因为您使用的是jQuery,所以使用$要好得多。parseJSON
谢谢您的帮助。不知道为什么,我无法调用这些函数中的任何一个$.parseJSON jQuery.parseJSON JSON.parse调用上述任何函数后,警报将停止工作。真奇怪。我使用的是jQuery1.4.2。这有关系吗?奇怪:添加的版本:1.4.1-jQuery.parseJSON(json)
success: function(data) {
if (typeof data == 'string')
{
data = jQuery.parseJSON(data);
}
alert(data.fullname);
}