@alex_dark

Почему передавая json через pjax post создается множество переменных?

Здравствуйте!

Я получаю с одного сервиса данные в виде json объекта. Делаю это в javascript'е
Потом эти данные хочу передать на сервер через pjax. Методом post

Когда я это делаю, то pjax на каждый ключ в объекте создает свою переменную.
В результате, если я передаю предположим
var info = {
    "id": 64479477,
    "first_name": "Сергей",
    "last_name": "Мишин",
    "sex": 2,
    "nickname": "",
    "screen_name": "sergey_mishin",
    "bdate": "6.6.1987"
  }


с вот таким запросом:
$.pjax.reload({
			container  : '#content',
			type       : 'POST',
			url        : path,
			data       : info,
			push       : true,
			replace    :  false,
			timeout    : 1000
		});


то в пост запросе улетает
info[id]:64479477
info[first_name]:Сергей
info[last_name]:Мишин
info[sex]:2
info[nickname]:
info[screen_name]:sergey_mishin
info[bdate]:6.6.1987

Это так и должно быть и я чего-то не знаю?
Или я что-то не так делаю?
И если я не так делаю, то как можно передать json, чтоб не создавалось множество переменных?

можно конечно обернуть в stringify, а на сервере делать разбор. Но так не хотелось бы

================
UPD

Поизучав вопрос было найдено, что ajax/pjax так и работают. И это верно. И так и должно быть. С этим ничего не сделать. Если малый объем данных нужно передать, не стоит беспокоиться.
Если же речь будет идти о тысячах переменных (что существенно увеличит загрузку данных), то скорее лучше будет передавать данные как строку

$.pjax.reload({
      container: '#content',
      type: 'POST',
      url: path,
      data: {
        jsonData: JSON.stringify(data)
      },
      push: true,
      replace: false,
      timeout: 1000
    });


а на сервере делать json_decode($_POST['jsonData']);
  • Вопрос задан
  • 569 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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