iNickolay
@iNickolay

Как отправить многомерный массив данных через AJAX на чистом JS?

Опытным путём, выяснилось что WP принимает только application/x-www-form-urlencoded (при других типах - 400 ошибка).
Соответственно, данные можно легко отправить вот так:
let request = new XMLHttpRequest(),
    formBody = [],
    data = {
        action: action_name,
        nonce_code: ajax_nonce,
    };

for (let property in data) formBody.push(encodeURIComponent(property) + "=" + encodeURIComponent(data[property]));
formBody = formBody.join("&");

request.open('POST', ajax_data.request_url);
request.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");
request.onload = function() {
    if (200 === request.status) {
        resolve(request.response);
    } else {
        reject(Error(request.statusText));
    }
};

request.onerror = function() {
    reject(Error("Network Error"));
};

request.send(formBody);


Но как их отправить, если у меня данные находятся в многомерном массиве, например такие:

data = {
  action: action_name,
  nonce_code: ajax_nonce,
  data: [
    {name: Vasya, surname: Pupkin},
    {items:[1,2,3,4]}
  ]
}

Всю ночь сижу над решением, вообще ничего не найти:(
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Aricus
Если вы можете управлять данными на обоих концах, то можно просто их перекодировать в JSON. С ним работает и js, и php. Я так делаю, когда возникают подобные проблемы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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