Используйте AJAX для отправки данных из HTML-формы в WebMethod

Поэтому я беру данные из формы HTML, а затем использую AJAX для отправки данных в веб-метод, который затем отправляется в базу данных sqlite, но мой вызов AJAX не выполняется. Что я испортил? Я делаю это правильно?

HTML-форма

<form id="addForm" >
     <input type="text"  name="playername" id="playername" placeholder="Player"/> 
     <input type="text" name="points" id="points" placeholder="Points" />
     <input type="text" name="steals" id="steals" placeholder="Steals" />
     <input type="text" name="blocks" id="blocks" placeholder="Blocks" /> 
     <input type="text" name="assists" id="assists" placeholder="Assists" />
     <input type="text" name="mpg" id="mpg" placeholder="MPG" /> 
     <input type="text" name="shotpct" id="shotpct" placeholder="Shot %" />
     <input type="text" name="threepct" id="3pct" placeholder="3 %" /> 
     <input type="button" value="add player" id="addbtn" name="addbtn" />
     </form>

AJAX

 $("#addbtn").click(function () {
                var form = $("#addForm").serializeArray();
                $.ajax({
                    type: 'POST',
                    url: "players.aspx/addRow",
                    data: JSON.stringify(form),
                    dataType: 'json',
                    success: function () {
                        alert('success');
                    },
                    error: function () {
                        alert('failure');
                    }
                });
                    });

и веб-метод (не законченный, просто тестирование, чтобы увидеть, получаю ли я данные)

[WebMethod]
        public static void addRow(object form)
        {
            var stuff = form;
        }

Я все еще учусь пользоваться этим материалом, поэтому любая помощь будет принята с благодарностью.

Ответы на вопрос(2)

замещать

JSON.stringify(form)

с

$('form').serializeArray()

Итак, вы будете иметь:

$("#addbtn").click(function () {
                var form = $("form").serializeArray();
                $.ajax({
                    type: 'POST',
                    url: "players.aspx/addRow",
                    data: form,
                    dataType: 'json',
                    success: function () {
                        alert('success');
                    },
                    error: function () {
                        alert('failure');
                    }
                });
                    });

Если вы все еще получаете ошибку. на странице, которую вы вызываете, может быть проблема со стороны сервера. чтобы убедиться в этом, я предлагаю вам использовать расширенный клиент REST, который является расширением Google Chrome, и вы можете протестировать проводку значений с ним и посмотреть результат.

 hereswilson07 июл. 2016 г., 22:12
Все еще получаю провал. Я думал, что "#addForm" имел в виду идентификатор формы HTML?
 hereswilson07 июл. 2016 г., 22:52
все еще терпит неудачу. Я не уверен, куда идти отсюда.
 Ashkan Mobayen Khiabani07 июл. 2016 г., 22:38
о, после сериализации я забыл добавить его в свой код проверить отредактированный ответ
 hereswilson07 июл. 2016 г., 22:36
Я думаю, что моя серверная сторона работает. Когда я тестирую POST, он имеет статус «200: ОК», но, как я уже сказал, я не знаю, правильно ли я форматирую данные.
 hereswilson07 июл. 2016 г., 22:30
Я использовал точный код, который вы опубликовали, и все еще получаю предупреждение об ошибке. Я попробую Advanced Rest Client.
 Ashkan Mobayen Khiabani07 июл. 2016 г., 22:19
да, вы также можете использовать его как $ ('# addForm'). Я отредактировал свой ответ, пожалуйста, посмотрите до конца моего ответа.
Решение Вопроса

замещать

type: 'POST',

с

method: 'POST',

dataType: 'json' не нужен, поскольку вы не получаете данные обратно. Данные, возвращаемые с сервера, форматируются в соответствии с параметром dataType.

Также удалите JSON.stringify (form), это уже сделано с .serialize ();

 hereswilson08 июл. 2016 г., 14:52
Ага. Спасибо за вашу помощь!
 hereswilson08 июл. 2016 г., 15:11
Как я могу проверить, что данные отправляются?

Ваш ответ на вопрос