[英]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.