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

WBOY
Freigeben: 2016-06-06 20:07:45
Original
1635 Leute haben es durchsucht

前端:

<code>
    <button id="btn">提交</button>
    <div id="container"></div>
    <script type="text/javascript">
            var json = {
                "classid": 1,
                "zlclass": "测试"
            };
            $("#btn").click(function() {
                $.ajax({
                type: "POST",
                url:"form.php",    
                contentType:"application/json;charset=utf-8",
                data: JSON.stringify(json),
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }
            });
            });
            
    </script>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

后端:

<code><?php header("Content-type:text/html;charset=UTF-8");
$data=json_decode($_POST['data']);
echo($data);
?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

回复内容:

前端:

<code>
    <button id="btn">提交</button>
    <div id="container"></div>
    <script type="text/javascript">
            var json = {
                "classid": 1,
                "zlclass": "测试"
            };
            $("#btn").click(function() {
                $.ajax({
                type: "POST",
                url:"form.php",    
                contentType:"application/json;charset=utf-8",
                data: JSON.stringify(json),
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }
            });
            });
            
    </script>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

后端:

<code><?php header("Content-type:text/html;charset=UTF-8");
$data=json_decode($_POST['data']);
echo($data);
?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

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

<code>$json = file_get_contents('php://input');</code>
Nach dem Login kopieren

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

<code>            $.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);
                }</code>
Nach dem Login kopieren

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

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

<code>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);
                }
            });
            });</code>
Nach dem Login kopieren

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

<code>data:{
    data:JSON.stringify(json)
}</code>
Nach dem Login kopieren

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

我按照您的意思后台用:

<code>$data = json_decode($_POST['data'],true);
   echo($_POST['data']);
</code>
Nach dem Login kopieren

接收到了数据:Ajax发送json数据,后台用php处理。

前端代码:

<code> <script>
   var json = {
                "classid": 1,
                "zlclass": "测试"
            };
      $.ajax({
                type: "POST",
                url:"http://localhost/ajax/json/test.php",                
                data: {data: JSON.stringify(json)}, 
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {                                       
                    $("#container").append("<h2>传数据成功");
                    $("#container").append("<h2>"+"classid:"+data['classid']+",zlclass:"+data['zlclass']+"");
                }
            })
       </script>
</code>
Nach dem Login kopieren

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage