重複の可能性:
非同期呼び出しから応答を返すにはどうすればよいですか?
Jquery Ajax を使用してサービスを呼び出し、値を更新しています。
function ChangePurpose(Vid, PurId) {
var Success = false;
$.ajax({
type: "POST",
url: "CHService.asmx/SavePurpose",
dataType: "text",
data: JSON.stringify({ Vid: Vid, PurpId: PurId }),
contentType: "application/json; charset=utf-8",
success: function (data) {
Success = true;//doesn't go here
},
error: function (textStatus, errorThrown) {
Success = false;//doesn't go here
}
});
//done after here
return Success;
}
およびサービス:
[WebMethod]
public string SavePurpose(int Vid, int PurpId)
{
try
{
CHData.UpdatePurpose(Vid, PurpId);
//List<IDName> abc = new List<IDName>();
//abc.Add(new IDName { Name=1, value="Success" });
return "Success";
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
サービスはAJAXから正常に呼び出されています。値も変更されています。しかし、サービスの後、success:またはerror:関数が呼び出されていません。この場合、success が呼び出されているはずですが、機能していません。
私はfirebugを使用しましたが、成功またはエラー関数がスキップされ、直接に行くことがわかりましたreturn Success;
コードの何が問題なのかを見つけることができないようです。
更新:
追加async: false
すると問題が修正されました