// Отправил запрос на отправку ajax http в php-файл на сервере, post // request – простой объект.
var xhr = new XMLHttpRequest(); var person = { "firstName" : "Adebowale", "lastName" : "Johnson", "ago" : 43 } xhr.open("POST","phfile.php",true); xhr.setRequestHeader("Content-type","application/x-www-form- urlencoded"); xhr.onreadystatechange = function() { if(xhr.readyState === 4) { var status = xhr.status; if((status >= 200) && (status < 300) || (status === 304)) { alert(xhr.responseText); } } }; xhr.send(JSON.stringify(person));
// если я предупреждаю (xhr.responseText); // Я получаю объект {} из браузера.
// На сервере, используя php, как мне получить доступ к объекту, если я делаю echo или // print_r, я получаю пустой объект — объект {} без каких-либо свойств.
// Как вы можете сказать по тону моего вопроса, я все еще очень новичок ко всем // этим, просто пытаюсь узнать, пожалуйста.
// на моем phfile.php, я установил следующий код php …
<?php print_r //How do I access the object I sent to this file please ?>
Вы можете читать необработанные данные POST с помощью STDIN
:
$post_data = fopen("php://input", "r"); $json = fgets($post_data); $object = json_decode($json); $firstName = $object->firstName; $lastName = $object->lastName; $age = $object->age;
Вы можете упростить все это, просто передав данные в виде полей формы с кодировкой URL:
xhr.send('firstName=' + encodeURIComponent(person.firstName) + '&lastName=' + encodeURIComponent(person.lastName) + '&ago=' + encodeURIComponent(person.ago);
Затем вы можете просто получить к ним доступ как $_POST['firstName']
и т. Д. В PHP.
Я не вижу необходимости в JSON.stringify(person)
в вашем запросе AJAX
, так как все keys
Object
уже находятся в strings
.
Поскольку вы используете метод POST
, вы можете напрямую обращаться к объекту, например
print_r ($_POST['person']);