Javascript: Sende JSON-objekt med Ajax?
Er dette mulig?
xmlHttp.send({
"test" : "1",
"test2" : "2",
});
Kanskje med: en overskrift med content type : application/json ?:
xmlHttp.setRequestHeader('Content-Type', 'application/json')
Ellers kan jeg bruke:
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
og deretter JSON.stringify JSON-objektet og sende det i en parameter, men det ville være kult å sende det på denne måten hvis det er mulig.
Svar #1
Med jQuery:
$.post("test.php", { json_string:JSON.stringify({name:"John", time:"2pm"}) });
Uten 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"}));
Svar #2
Hvis du ikke bruker jQuery, må du vennligst sørge for:
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);
Og for PHP-mottakssiden:
$_POST['json_name']
