ajax json请求问题:警报不起作用

时间:2018-12-15 08:47:20

标签: php jquery ajax

这是我的jquery ajax代码

   $.ajax({  
        url:"update.php",  
        method:"POST",  
        data:{id:id, text:text, column_name:column_name},  
    dataType: 'json',
        success:function(data){  

                 alert("HelloJson");


                }

我的update.php页面仅包含

header('Content-Type:application/json');

当我将dataType更改为text时,警报HelloJson工作,但是当我将dataType更改为'json'时,警报HelloJson无法工作。我想使用json以及如何解决此问题?

2 个答案:

答案 0 :(得分:0)

我尝试了这段代码,它可以按预期工作:

index.html

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $("button").click(function(){

                $.ajax({
                    url:"update.php",
                    method:"POST",
                    data:{id:"8", text:"code", column_name:"name"},
                    dataType: 'json',
                    success:function(data){

                        alert("HelloJson");
                        console.log(data);


                    },error:function(xhr,status,error){
                    console.log(error)
                }

            });
            });

        });
    </script>
</head>
<body>

<button>Post data</button>

</body>
</html>

update.php:

header("Content-type:application/json");

echo json_encode(["id"=>$_POST["id"],
              "text"=>$_POST["text"],
              "column_name"=>$_POST["column_name"]]);

答案 1 :(得分:0)

在使用dataType: 'json'时,jQuery将parse对JSON的响应,并且由于响应中没有任何内容,因此您会在下面看到错误,请在控制台中查看。

  

SyntaxError:JSON.parse:第1行第1列的数据意外结束   JSON数据

要获得有效的json响应,它至少需要发送空引号""

<?php
header('Content-Type:application/json');
echo '""';
?>