2016-02-12 177 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'訪問單個屬性?這是通過提取每個屬性並將其作爲單獨的屬性發送完成的。 –