Я тестирую следующий скрипт, который отправляет объект javascript с использованием xmlHttpRequest в скрипт php. Проблема в том, что массив, сгенерированный при использовании xmlHttpRequest, при использовании формы не совпадает.
Например: данные из формы отправлены
<code><form action="form-b.php" method="post">
<input type="text" name="Newton" value="Gravity"><br>
<input type="text" name="Albert" value="Energy"><br>
<input type="text" name="Edison" value="Bulb"><br>
<input type="text" name="Tesla" value="AC"><br>
<input type="text" name="Bill" value="Microsoft"><br>
<input type="submit">
</form>
form-b.php
echo '<pre>';
print_r($_POST);
echo '
'; Массив ([Ньютон] => Гравитация [Альберт] => Энергия [Эдисон] => Лампа [Тесла] => AC [Билл] => Microsoft)
Использование xmlHttpRequest
<code>var button = $("button")
button.on("click",function() {
var arr = {
"Newton": "Gravity",
"Albert": "Energy",
"Edison": "Bulb",
"Tesla": "AC",
"Bill" : "Microsoft"
};
myData = JSON.stringify(arr);
console.log(myData);
var xhr = new XMLHttpRequest();
xhr.open('POST','form-b.php', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if(ajaxReturn(xhr) == true) {
alert(xhr.responseText);
}
}
function ajaxReturn(x){
if(x.readyState == 4 && x.status == 200){
return true;
}
}
xhr.send(myData)
});
form-b.php
echo '<pre>';
print_r($_POST);
echo '
«; Array ([{"Newton": "Gravity", "Albert": "Energy", "Edison": "Bulb", "Tesla": "A C"}] =>)
Массив, полученный при использовании xmlHttpRequest, сильно отличается от того, который будет получен при отправке формы.
Где я иду не так и как я могу это исправить?
Я пытаюсь получить массив из $ _POST вот так
Array
(
[Newton] => Gravity
[Albert] => Energy
[Edison] => Bulb
[Tesla] => AC
[Bill] => Microsoft
)