аякс иногда не стреляет - PullRequest
2 голосов
/ 10 марта 2011

Я звоню веб-методу из jquery / ajax. Иногда мой веб-метод вызывается, а иногда нет. Я передаю одни и те же аргументы каждый раз (цифра 1 и короткая строка текста). Я также создал обработчики для перехвата ошибок и отображения кодов после завершения вызова ajax. Даже когда он не называет мой веб-метод, статус «успех». Есть идеи?

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);
}

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Если ваши параметры совпадают с предыдущим вызовом, он не вызовет код

    //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);

}
1 голос
/ 10 марта 2011

я думаю, что это просто не работает в IE. Если это так, см. этот ответ .

...