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

Массив объектов, как передавать через ajax?

Вопрос следующего характера.
Имеем на js переменную parse_schedule - массив объектов с описанными их свойствами:
5cb832af5aa37608998256.jpeg

Этот массив передаётся через post-метод в ajax-запросе:
$.post('/local/upload_parser.php?parse=' + parse_schedule, function(data){ *** });
,
где он в последствии обрабатывается.
Проблема в том, что в запроса он передаётся как [object Object], и это содержимое не получается обработать внутри php-файла.
Как можно получить данные из этой переменной? Если никак, то как её нужно переслать, чтоб можно было работать с содержимым?

Примечание: до этого вместо parse_schedule был следующий код:
JSON.stringify(parse_schedule.slice(0,5))

Я делал JSON.stringify данного массива и в последствии его обрабатывал. Скажу больше - он обрабатывался нормально и выводил необходимые данные. Проблема в том, что по заданию вместо 5 должно быть 10, и тогда запрос выдаёт ошибку 414.
  • Вопрос задан
  • 1034 просмотра
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 3
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
HTTP 414 - это значит слишком длинный URL.
Нужно сериализовать в JSON и передавать POST'ом.
Ответ написан
Комментировать
irishmann
@irishmann
Научись пользоваться дебаггером
Это за пределами нормального. Причем тут пост, когда передаешь методом гет?
$.post('/local/upload_parser.php?parse=' + parse_schedule, function(data){ *** });

Почитайте документацию о том как это правильно делается ссылка

Я бы сделал это так
$.ajax({
	type:'POST',
	url: '/local/upload_parser.php',
	'data': { 
		parse: JSON.stringify(parse_schedule.slice(0,5))
	},
	success: function(data){
                var result = JSON.parse(data);
		alert("Все гуд!");
	},
	error: function(){
		alert("Ахтунг, проблема!");
	}
});


Документация по $.ajax
Ответ написан
Комментировать
@geektimer
var jqxhr = $.post('/local/upload_parser.php', {parse: JSON.stringify(parse_schedule.slice(0,5))}, function(response) {
   console.log(response);
   alert( "success" );
})
  .done(function() {
    alert( "second success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "finished" );
  });
 
// Perform other work here ...
 
// Set another completion function for the request above
jqxhr.always(function() {
  alert( "second finished" );
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 13:01
50000 руб./за проект
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект