javascript - PHP POST 和 GET JSON 数据

标签 javascript php json request

我尝试做一个非常简单的网络服务器,可以发送和获取 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/

相关文章:

javascript - 如何在 Kendo Charts Angular 2 上添加绘图带

php - 插入多个 mysql 行 php Android

android - 尝试使用 youtube api 从 json 中提取视频 ID

arrays - Swift 3 - 无法使用数组发出 Alamofire 请求

javascript - 如何迭代无序 JSON 数据并排序到数组中

javascript - 如何从另一个函数中停止 javascript 函数?

javascript - 如何在svg元素上添加dragend事件

javascript - 内联条件

php - 在 Laravel 中对 div 和数据值使用循环

php - 如何将值插入 MYSQL