Опытным путём, выяснилось что 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]}
]
}
Всю ночь сижу над решением, вообще ничего не найти:(