Ошибка при отправке массива javascript в контроллер Spring MVC - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь присвоить массив Javascript переменной AJAX, но в ней говорится, что переменная undefined.

Мой Javascript код:

for (var n = 1; n < rowCount; n++) {
            cells = rows[n].cells;
            data.push([
                cells[0].firstElementChild.checked,
                cells[1].firstElementChild.value,
                cells[2].firstElementChild.value,
                cells[3].firstElementChild.value,
                cells[4].firstElementChild.value
           ]);
}

$.ajax({
        url: 'addDetails.html',
        type:"POST",
        data:
{promo : data}

Здесь после добавления данных в массив js, если я вижу данные в консоли браузера, я могу увидеть массив для примера:

0: Array(5)
0: false
1: "bgnhmhm"
2: "hghghg"
3: "BERPP5070U"
4: "fhghgnhjgh"

Но если я вижу значение «promo» в консоли браузера, то оно показывает следующее сообщение об ошибке:

VM3775: 1 Uncaught ReferenceError: промо не определено

Пожалуйста, помогите мне .. Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

promo не является переменной, которую вы можете использовать как таковую. Это имя поля объекта. Этот код:

$.ajax({
        url: 'addDetails.html',
        type:"POST",
        data: {promo : data}
}

вызывает $.ajax, передавая ему безымянный объект. Безымянный объект, переданный в $.ajax, содержит поле с именем data, которое является объектом в качестве его значения. Этот внутренний объект, который является значением поля data, имеет promo в качестве ключа и data (ваш массив) в качестве значения.

Попробуйте выполнить следующее:

$.ajax({
        url: 'addDetails.html',
        type:"POST",
        data:
        {promo : data}
}
var promo = data;
console.log(promo);

Вы увидите, что переменная существует. Потому что вы создаете это. Если вы его не создадите, его не будет.

0 голосов
/ 11 марта 2020

Вы можете сразу использовать данные: данные и удалить (промо: данные}. Это будет работать

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