我尝试做一个非常简单的Web服务器,可以发送和获取JSON数据。
JavaScript的:
var username = document.getElementsByName('username')[0].value;
var antwort1 = document.getElementsByName('frag1')[0].value;
var antwort2 = document.getElementsByName('frag2')[0].value;
var antwort3 = document.getElementsByName('frag3')[0].value;
//JSON
var jsondata = {"data" :[
{"name": username},
{"antwort1":antwort1},
{"antwort2":antwort2},
{"antwort3":antwort3}]};
var url = "https://...../apps/server.php";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "POST", url, true );
xmlHttp.send(JSON.stringify(jsondata));
console.log(xmlHttp.responseText);
alert(xmlHttp.responseText);
PHP:
<?php
$json_data;
if( $_GET["json"]) {
echo $json_data;
exit();
}
/*
if(!isset($_POST)){
//$json_data = json_decode($_POST["data"]);
echo "test POST";
exit();
}
*/
if(!isset($_POST)){
$json_data = file_get_contents('php://input');
echo $json_data;
exit();
}
?>
我的主要问题是如何将JSON发送到我的php服务器。安藤我怎么能检查这个。最后我只想保存Json数据并将其发回。
Send JSON data from Javascript to PHP?
我在上面的链接中尝试。
更新:像rick
JavaScript:两个按钮一个用于GET一个用于POST
function btn1() {
alert("btn1");
var url = "https://....../apps/server.php?json=null";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", url, false ); // false for synchro nous request
xmlHttp.send( null );
alert(JSON.stringify(xmlHttp.responseText));
console.log(xmlHttp.responseText);
};
function btn0() {
alert("test");
var username = document.getElementsByName('username')[0].value;
var antwort1 = document.getElementsByName('frag1')[0].value;
var antwort2 = document.getElementsByName('frag2')[0].value;
var antwort3 = document.getElementsByName('frag3')[0].value;
//alert(username+" "+antwort1+" "+antwort2+" "+antwort3);
//JSON
var jsondata = {"data" :[
{"name": username},
{"antwort1":antwort1},
{"antwort2":antwort2},
{"antwort3":antwort3}]};
//alert(jsondata.data[0].name);
var url = "https://...../server.php";
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
alert(xmlHttp.responseText);
}
};
xmlHttp.open( "POST", url, true );
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send("jsonData="+JSON.stringify(jsondata));
};
PHP
<?php
$json_data = "";
if( $_GET["json"]) {
echo $json_data;
exit();
}
if(!isset($_POST)){
$json_data = $_POST["name"];
echo $json_data;
exit();
}
?>
答案 0 :(得分:1)
对于POST部分,使用application / x-www-form-urlencoded更为常见,因此您可以将POST数据视为表单。
&#xA;&#xA;响应你必须设置一个回调,因为你的呼叫是异步的。
&#xA;&#xA;尝试类似的东西
&#xA;&#xA; var url =“https://...../apps/server.php”;&#xA; var xmlHttp = new XMLHttpRequest();&#xA;&#xA; xmlHttp .onreadystatechange = function(){& #xA; if(xmlHttp.readyState == 4&amp;&amp; xmlHttp.status == 200){&#xA;警报(xmlHttp.responseText);&#XA; }&#xA;};&#xA; xmlHttp.open(“POST”,url,true); &#xA; xmlHttp.setRequestHeader(“Content-type”,“application / x-www-form-urlencoded”);&#xA; xmlHttp.send(“jsonData =”+ JSON.stringify(jsondata));&# xA;
&#xA;&#xA; 对于php
&#xA;&#xA; if(!isset($ _ POST) ){&#XA; $ json_data = $ _POST [“jsonData”];&#xA; echo $ json_data;&#xA;退出();&#xA;}&#xA;
&#xA;&#xA; 这比我在PHP中写一行还要长10年但我希望这个概念很清楚。
&#xA;