AJAX JSON запрос проблемы: предупреждение не работает - PullRequest
0 голосов
/ 15 декабря 2018

Это мой код 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 на текст, предупреждение HelloJson работает, но когда я меняю dataTypeк сообщению 'json' HelloJson не работает. Я хочу использовать json и как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

при использовании dataType: 'json' jQuery parse ответит на JSON, и поскольку в ответе нет содержимого, вы получите сообщение об ошибке ниже, смотрите его в консоли.

SyntaxError:JSON.parse: неожиданный конец данных в строке 1 столбца 1 данных JSON

, чтобы быть действительным ответом json, для этого необходимо отправить хотя бы пустые кавычки ""

<?php
header('Content-Type:application/json');
echo '""';
?>
0 голосов
/ 15 декабря 2018

Я попробовал этот код, и он работает как ожидалось:

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"]]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...