2

jquery/ajax から webmethod を呼び出しています。Web メソッドが呼び出されることもあれば、呼び出されないこともあります。毎回同じ引数を渡しています (数字の 1 と短いテキスト文字列)。また、ajax 呼び出しが完了したときにエラーをキャッチしてコードを表示するハンドラーも作成しました。Web メソッドが呼び出されない場合でも、ステータスは「成功」です。何か案は?

jquery:

var txt = $(ta).val();

$.ajax({
    type: 'POST',
    url: 'Default.aspx/AddThread',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({ forumId: id, comment: txt }),
    dataType: 'json',
    error: function(jqXHR, textStatus, errorThrown) {
        alert("status: " + textStatus);
        alert("errorThrown: " + errorThrown);
    },
    complete: function (jqXHR, textStatus) {
        alert("status: " + textStatus);
    }
});

C#:

[WebMethod]
public static void AddThread(int forumId, string comment)
{
    DataAccess.AddNewThread(forumId, comment);
}
4

2 に答える 2

1

私の推測では、IEでは機能していないだけです。この場合は、この回答を参照してください。

于 2011-03-09T23:31:29.667 に答える
1

パラメータが以前の呼び出しと同じ場合、コードは呼び出されません

    //i.e.  
    AddThread(42, "Hello World");

    //then later you also call
    AddThread(42, "Hello World");

    //the web method wont invoke any code it will just return the cached result.`

この動作を停止するには、結果を保存しないように CacheDuration を 0 に設定します。

[WebMethod(CacheDuration=0)]
public static void AddThread(int forumId, string comment)
{
    DataAccess.AddNewThread(forumId, comment);

}
于 2011-03-09T23:42:19.333 に答える