[英]ASP.NET: jQuery Ajax result not defined
我有这个jQuery ajax:
// ... omitted code ...
var data = "{'TagName':'" + TagName + "'}";
var resultSet = 0;
jQuery.ajax(
{
type: "POST",
url: '<%= ResolveUrl("~/Webservices/TagWebServices.asmx/GetTagByTagName") %>',
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (t)
{
resultSet = t.d;
}
});
jQuery(this).after("<div style='color:#E3E3E3; margin-bottom:10px;'>" +
resultSet.desc +
"</div>" );
// ... omitted code ...
问题是resultSet.desc总是返回“undefined”但是当我使用Firebug并在最后一行添加一个断点然后单击(继续)resultSet.desc按预期工作。
ajax调用是异步的(根据定义......)。 所以你必须在成功处理程序中加入效果:
$.ajax({ ...
success : function(t) {
resultSet = t.d;
jQuery(this).after("<div style='color:#E3E3E3; margin-bottom:10px;'>" +
resultSet.desc +
"</div>" );
}
)};
默认情况下,Ajax是异步的。 您可以尝试设置ajax请求同步设置: async:false,
但这是一种不好的方法。
要做的就是在成功回调函数中编写逻辑代码,保持对'this'对象的引用。
var data = "{'TagName':'" + TagName + "'}";
var resultSet = 0,
that = this;
jQuery.ajax(
{
type: "POST",
url: '<%= ResolveUrl("~/Webservices/TagWebServices.asmx/GetTagByTagName") %>',
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (t)
{
resultSet = t.d;
jQuery(that).after("<div style='color:#E3E3E3; margin-bottom:10px;'>" +
resultSet.desc +
"</div>" );
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.