Как лучше и правильнее передать данные из javascript в сервлет, если не использовать форму и input

138
02 декабря 2018, 06:30

Задача стандартная, корзина на сайте. Продукты подгружаются динамически. Хочу сделать чтобы при клике на кнопку "В корзину", происходила передача двух параметров в сервлет (это id, который я беру у кнопки и count, количество товара). Как их правильно передать в сервлет? Которые хотелось бы в сервлете получить через request.getParametr("id");

 var xhr = new XMLHttpRequest(); 
    var send = "{\"id\":" + "\"" + id + "\"," + "\"count\":" + "\"" + count + "\"" + "}"; 
    send = JSON.parse(send); 
 
    function reqReadyStateChange() { 
        if (xhr.readyState == 4) { 
            var status = xhr.status; 
            if (status == 200) { 
                var data = xhr.responseText; 
            } 
            else { 
            } 
        } 
    } 
    xhr.open("POST", srvUrl, true); 
    xhr.onreadystatechange = reqReadyStateChange; 
    xhr.send(send); 
}

Пробовал вот так, но servlet возвращает null

Answer 1

JSON нужно не парсить при отправке, а наоборот привести к строке "stringify", и еще можно добавить в хедер MIME type

var send = JSON.stringify({ id, count });
var xhr = new XMLHttpRequest();
xhr.overrideMimeType("application/json");
xhr.open("POST", srvUrl, true);
xhr.onreadystatechange = function () { /* some handler */ };
xhr.send(send); 
READ ALSO
Порядок выполнения функции Google Maps

Порядок выполнения функции Google Maps

Я использую Google MapsДля вызова API я использую $

129
Перевести из миллисекунд в HH:mm?

Перевести из миллисекунд в HH:mm?

пытаюсь вычислить разницу в миллисекундах

150
В консоли на странице с каптчей вылетает ошибка

В консоли на странице с каптчей вылетает ошибка

прошу помочьУ меня на сайте есть две страницы с каптчей 2

151