当前位置:Gxlcms > PHP教程 > Ajax发送json数据,后台用php处理。

Ajax发送json数据,后台用php处理。

时间:2021-07-01 10:21:17 帮助过:40人阅读

前端:


    
    
    

后端:


结果test.html没有看到返回值,报错。对于php后台接收json数据处于刚入门阶段,求指点

回复内容:

前端:


    
    
    

后端:


结果test.html没有看到返回值,报错。对于php后台接收json数据处于刚入门阶段,求指点

A) 已你的前端为准,php端需要这样获取

$json = file_get_contents('php://input');

因为是发送的是json数据,所以并不存在$_POST['data']这个东西。
B) 已你的后端为准,前端需要这样发送

            $.ajax({
                type: "POST",
                url:"form.php",    
                //contentType:"application/json;charset=utf-8",
                data: {data: JSON.stringify(json)}, //使用普通的键值方式
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }

前端传的时候直接传json对象不用JSON.stringify处理
后端 $_POST['zlclass']; 接收就行

照你现在这样传的话估计得php://input中去取

var json = {
                "classid": 1,
                "zlclass": "测试"
            };
            $("#btn").click(function() {
                $.ajax({
                type: "POST",
                url:"form.php",    
                dataType:'JSON',
                data: json,
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }
            });
            });

后台直接$data=$_POST['classid'];

data:{
    data:JSON.stringify(json)
}

var_dump($_POST);看看里面有什么。。

我按照您的意思后台用:

$data = json_decode($_POST['data'],true);
   echo($_POST['data']);

接收到了数据:

前端代码:

 

不知道这样能解决您的问题吗?

ajax上传的不是json,data是json转化成的表单数据,直接var_dump($_POST),不要用json处理,json是做返回值用的。

人气教程排行