Javascript: отправить объект JSON с Ajax?
это возможно?
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 и отправить его в параметре, но было бы здорово отправить его таким образом, если это возможно.
3 ответа:
С помощью jQuery:
$.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']