Задать вопрос

Почему при отправки переменной содержащих табличные данные во VueJS, приходит пустой массив?

Добрый день!
Имеются следующие данные:
data: {
        newposition: []
     }

Далее в newposition.table присваиваем значение данных табличной части, которые прекрасно рендарятся и выводятся на страницу кодом:
<tr v-for="table in newposition.table">
    <td>{{ table.linenum }}</td>
    <td>{{ table.name}}</td>
    ...... и тп.
</tr>


При попытке отправить данные на сервер методом POST через Axios:
axios.post( 'json.php?order=add',  {table: this.newposition.table});

На сервер приходит следующее при обработке пост запроса:
[table] => ,
Если сделать через form.append:
for( var i = 0; i < this.newposition.table.length; i++ ){
   let table = this.newposition.table[i];
   formData.append('table[' + i + ']', table);
}

Приходит следующее:
[table] =>
 [0] =>
 [1] =>
 ....

И так далее по количеству строк в таблице.
Перепробовал уже все варианты, обычные данные приходят и обрабатываются отлично, а вот если в переменной вложен еще один или несколько массивов, console.log() переменной показывает данные прекрасно, а при передачи на сервер они почему то пустые.
При этом если посмотреть headers запроса, который отправляет axios, там эти данные уже сразу пустые..
  • Вопрос задан
  • 151 просмотр
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
qDiablo
@qDiablo Автор вопроса
В итоге, удалось решить кустарным методом перечисления
for( var i = 0; i < this.newposition.table.length; i++ ){
              formData.append('table[' + i + '][linenum]', this.newposition.table[i]['linenum']);
              formData.append('table[' + i + '][name]', this.newposition.table[i]['name']);
              .....
            }

Может существует более универсальный метод? На случай если вдруг будут изменяться/добавляться столбцы?
Ответ написан
Комментировать
Oegir
@Oegir
Web-программист
Попробуйте так
axios({
	method: 'post',
	{
		'Content-Type': 'application/json',
		'X-Requested-With': 'XMLHttpRequest'
	},
	url,
	JSON.stringify(data),
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы