PARAM我有了類似於以下的結構數組:發送對象的JavaScript XHR
var data = [
{
'name': 'Foo'
},
{
'name': 'Bar'
}
]
我想將它傳遞給我的純JavaScript的PHP腳本,而不依賴於jQuery的。
所以我的jQuery的版本是:
$.ajax({
'url': '/script.php',
'method': 'POST',
'data': {'inscriptions': data},
'dataType': 'json',
'success': function(response){
// my code for handling the response
}
});
而且在Javascript中我有以下幾點:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/script.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
xhr.send(data);
xhr.onreadystatechange = function(event){
if(event.target.readyState != XMLHttpRequest.DONE)
return;
// my code for handling the response
};
但是我遇到的問題是,它發送在Javascript這樣,我因爲
array(0){}
如果我改變它t ○:
xhr.send(JSON.stringify({'inscriptions': data}));
然後在我的服務器端我$_POST
將是:
array (size=1)
'{"inscriptions":' =>
array (size=1)
'{"name":"Foo"},{"name":"Bar"}' => string '' (length=0)
當我通過jQuery發送我得到如下:
array (size=1)
'inscriptions' =>
array (size=2)
0 =>
array (size=1)
'name' => string 'Foo' (length=3)
1 =>
array (size=1)
'name' => string 'Bar' (length=3)
有沒有辦法實現純Javascript的同一件事情?
我的問題已被標記爲Send JSON data from Javascript to PHP?的副本,但答案並不回答我的問題。他們使用了一種「旁路」它:
php://input
但是,它不是直接將其發送到$_POST
像jQuery一樣。
的可能的複製[發送從Javascript JSON數據到PHP?](https://stackoverflow.com/questions/8599595/send-json-data-from-javascript-to-php) – JazZ