jQuery AJAX call получает ответ HTML - PullRequest
0 голосов
/ 19 октября 2018

У меня есть вызов AJAX в файле .aspx:

var data = { "schoolID": id };

$.ajax({
    type: "POST"
    , url: "schools.aspx/DeleteSchool"
    , data: JSON.stringify(data)
    , contentType: "application/json; charset=utf-8"
    , dataType: "json"
    , error: function (XMLHttpRequest, textStatus, errorThrown) {
        $.alert({
            title: "Error deleting school"
            , type: "red"
            , content: XMLHttpRequest + "||\n" + textStatus + "||\n" + errorThrown
        });
});

Он вызывается при нажатии кнопки.Предполагается передать идентификатор этой функции C #:

[WebMethod]
public void DeleteSchool(int schoolID)
{
    string query = @"
        DELETE
        FROM tableName
        WHERE id = @schoolID
    ";

    List<SQLParameter> parameters = new List<SQLParameter> {
        new SQLParameter("@schoolID", schoolID)
    };

    SqlConn.doQuery(query, parameters);
}

Однако, когда я помещаю точку останова в функцию C #, она никогда не прерывается, и функция ошибки в объекте AJAX всегда выполняется.Ошибка выглядит следующим образом:

image of error in Firefox Developer Edition

В Chrome это выглядит так:

image of error in Chrome

Ответ возвращается в виде HTML:

image of response

image of response

КогдаЯ проверяю параметры запроса, кажется, что JSON-объект, который я передаю, правильно форматирует, поэтому я не совсем уверен, что здесь не так, или почему WebMethod никогда не срабатывает.Я проверил документацию MDN для кода 302 , но я не уверен, связано ли это вообще с моей проблемой.Исходя из моих исследований, кажется, что AJAX ожидает JSON вместо HTML и не может проанализировать ответ, но я не совсем понимаю, почему, поскольку возвращение WebMethod является недействительным и в любом случае его не ударили,Почему я получаю ответ в формате HTML и почему мой WebMethod не вызывается?

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Оказывается, проблема в том, как моя организация обрабатывает запросы.

0 голосов
/ 19 октября 2018

Ваш URL в вызове ajax должен быть

url: "http://localhost:56302/context/Math/schools.aspx/DeleteSchool"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...