2016-02-12 218 views
1

我想发送一个JSON objectPHP服务器,但我在那里得到一个空的数组。这是为什么发生?使用POST发送json对象pure javascript

var obj = { 
    username: username, 
    password: password 
}; 

var ajax = new XMLHttpRequest(); 
ajax.open('post', 'ajax/login_register.php'); 
ajax.setRequestHeader("Content-type", "application/json;charset=UTF-8"); 
ajax.send(JSON.stringify(obj)); 
+0

那你是怎么做到这一点。问题必须与您如何阅读数据有关。 – Quentin

+0

'$ _POST'? @Quentin –

+0

就是这样。 JSON请求不会填充'$ _POST'。看到重复的问题。 – Quentin

回答

3

您需要给它一个名称,您可以在服务器端引用它。

ajax.send('user=' + encodeURIComponent(JSON.stringify(obj))); 

$_POST['user'] // <-- your JSON string 
+0

我已经试过这种方式,但工作,但'jQuery'如何做,所以我们不在后端使用'$ _POST ['user']'? –

+0

这不会发送JSON请求。它会发送一个(很糟糕,因为您忘记使用'encodeURIComponent')窗体编码的请求,并在其中嵌入JSON文本。 – Quentin

+0

你的意思是你可以通过'$ _POST'访问单个属性?这是通过提取每个属性并将其作为单独的属性发送完成的。 –