Я пытаюсь отправить массив из JS в PHP, используя AJAX.
. Кажется, что происходит, что запрос проходит и успешно выполнен, но данные отсутствуют получил на сервере (мой тест. php скрипт нуждается в данных из этого массива). Вот что у меня есть ...
Javascript
myButton.onclick = function() {
var xhr = new XMLHttpRequest();
xhr.open("POST", "test.php", true);
xhr.onreadystatechange = function () {
if (xhr.readyState==4 && xhr.status==200) {
console.log("Done. ", xhr.responseText);
}
}
//xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send('myArray='+JSON.stringify(myArray));
};
test. php
<?php
//$myArray = json_decode($_POST['myArray']); //Undefined index
print_r($_POST);
Примечание, myArray не показан в приведенном выше коде, но он является допустимым массивом.
Я искал вокруг SO (что привело меня к добавлению setRequestHeader), а также более широкий inte rnet. Тем не менее, это не имеет значения, и я, кажется, ходить по кругу. Когда я печатаю $ _POST, это всегда пустой массив.
Я уверен, что я чего-то упускаю / неправильно понимаю.
Редактировать
По запросу ...
var myArray = ["John", "Jill", "James"];
Я также пытался сделать это с массивом логических значений, а также с ассоциативным массивом / объектом.
Редактировать 2
По запросу добавляем снимок экрана с консоли разработчика ...