我尝试做一个非常简单的网络服务器,可以发送和获取 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 服务器。 Ando 我怎样才能检查这个。最后我只想保存 Json 数据并将其发送回来。
Send JSON data from Javascript to PHP?
我尝试了上面的链接。
更新:像里克
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();
}
?>
最佳答案
对于 POST 部分,使用 application/x-www-form-urlencoded 更方便,这样您就可以将 POST 数据视为表单。
对于响应,您必须设置回调,因为您的调用是异步的。
尝试类似的事情
var url = "https://...../apps/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
if(!isset($_POST)){
$json_data = $_POST["jsonData"];
echo $json_data;
exit();
}
我已经有 10 年没有用 PHP 写过一行了,但我希望这个概念是清晰的。
关于javascript - PHP POST 和 GET JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862767/