Javascript:用Ajax发送JSON对象?

这可能吗?

xmlHttp.send({ "test" : "1", "test2" : "2", }); 

也许与: content type的头: application/json

 xmlHttp.setRequestHeader('Content-Type', 'application/json') 

否则,我可以使用:

 xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') 

然后JSON.stringify JSON对象并将其发送到参数中,但如果可能的话,以这种方式发送它将会很酷。

@mellamokb你的答案将使用application / x-www-form-urlencoded mimetypes生成简单的后置数据键/值对

@CIRK

如果你想发布JSON,你可以这样做

 $.post("test.php", { json_string:JSON.stringify({name:"John", time:"2pm"}) }); 

要么

(这里不使用jQuery)

 var xmlhttp = new XMLHttpRequest(); // new HttpRequest instance xmlhttp.open("POST", "/json-handler"); xmlhttp.setRequestHeader("Content-Type", "application/json"); xmlhttp.send(JSON.stringify({name:"John Rambo", time:"2pm"})); 

如果你不使用jQuery,那么请确保:

 var json_upload = "json_name=" + JSON.stringify({name:"John Rambo", time:"2pm"}); var xmlhttp = new XMLHttpRequest(); // new HttpRequest instance xmlhttp.open("POST", "/file.php"); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.send(json_upload); 

并为PHP接收结束:

  $_POST['json_name']