私のasp.netアプリケーション(サーバー側のvb)では、JavaScriptでPageMethodsを使用して、サーバー側の関数を呼び出しています。特に 1 つの呼び出しが正しく機能していません。pagemethods 呼び出しはサーバー側関数を呼び出しています (トレースポイントを使用して確認できます) - しかし、関数の実行後に成功関数または失敗関数がヒットしていません。関数の最後のビットはSQLテーブルの更新であるため、サーバー側の関数が最後まで正常に実行されていることを知っています-これは正常に行われます。成功関数または失敗関数が呼び出されない理由を誰か教えてもらえますか? 以下に、サーバー側への呼び出し、成功関数と失敗関数、および呼び出されているサーバー側関数を示します。ご協力ありがとうございました。
サーバー側への呼び出し
PageMethods.UpdatePassword(document.getElementById('txtNewPass').value, updatePasswordCallBack, updatePasswordFail);
成功/失敗関数
function updatePasswordCallBack(c) {
alert('updatePasswordCallBack hit');
}
function updatePasswordFail(c) {
alert('updatePasswordFail hit');
}
サーバー側関数 (トレースポイントでわかるように呼び出されます)
<System.Web.Services.WebMethod()> _
Public Shared Function UpdatePassword(ByVal userText)
'Open Connection to DB here, removed for stackoverflow post
'convert userText to password hash removed for stack overflow
'now must update the password
myCmd.CommandType = CommandType.Text
myCmd.CommandText = "UPDATE P2_RESOURCE_PROFILE SET RES_PASSWORD = '" & userTextHash & "' WHERE RES_UID = " & UserID
myCmd.ExecuteScalar()
objConn.Close()
Return true
End Function
そのため、executeScalar がヒットして DB 値が変更されますが、完了時に return または success 関数はヒットしません。ご協力いただきありがとうございます。