如何访问我发送到服务器文件的对象的对象

时间:2015-07-02 20:06:06

标签: javascript php ajax

//向服务器上的php文件发送ajax http post请求,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,我得到没有属性的空对象--- object {}。

//你可以从我的问题的语气中看出,对于所有这些人来说,我还是很新的,我只是想学习。

//在我的phfile.php上,我设置了以下php代码......

<?php

print_r 
//How do I access the object I sent to this file please
?>

2 个答案:

答案 0 :(得分:1)

我在JSON.stringify(person)请求中看不到AJAX的必要性,因为keys的所有Object已经在strings

由于您使用的是POST方法,因此您可以直接访问

这样的对象
print_r ($_POST['person']);

答案 1 :(得分:0)

您可以使用STDIN读取原始POST数据:

$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);

然后你可以在PHP中以$_POST['firstName']等方式访问它们。