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']