Почему нажатие по кнопке Like, не сразу отображает инкремент (+1) на странице? А только лишь, после перезагрузки

В БД при этом, тоже "инкремент". А в консоли ChromeDevTools появляется ошибка: "Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse ()"

Доброго времени суток! В чём может быть проблема? Помогите, пожалуйста, разобраться. Заранее, благодарю за любую помощь!

                      index.php
$mysql = new PDO( создает соединение с базой данных );  
$statement = $mysql->query("SELECT `value` FROM counter WHERE `id` = 1");
$data3 = (int)$statement->fetchColumn();
<div class="block-up">   
    <form id="ratingsLike" method="post">  
        <input type="hidden" name="ip" value="" />
        <button id="btnLike" type="button"></button>
    </form> 
     
    <div class="content-like-dislike">
        <span class="thanks">Thank you very much!</span>
        <p id="like_count"><?= $data3 ?></p>    <!--  Счётчик подсчёта голосов Like  -->
    </div>
</div>
                       main.js
var btnLike = $("#btnLike"),
    counterLike = $("#like_count");
    
  btnLike.on('click', function(event) {
      event.preventDefault();
      
      var ajax = $.ajax({
        method: 'post',
      url: 'site.php/counter.php',
      dataType: 'text',
      data: {
        "count": 1
      }
    });
    ajax.done(function(data) {
      data = JSON.parse(data);
      counterLike.html(parseInt(data));
    });
    
  });
                          counter.php
if (isset($_POST["count"]) && (int)$_POST["count"] === 1):
 try {
   $mysql = new PDO( создает соединение с базой данных );   
   
   $stmt = $mysql->query("SELECT `value` FROM counter WHERE `id` = 1");
   $data = (int)$stmt->fetchColumn();
   $data++;
   $query = "UPDATE `counter` SET `value` = :value WHERE `id` = :id";
   $params = [
     ":id" => 1,
     ":value" => $data
   ];
   $stmt = $mysql->prepare($query);
   $stmt->execute($params);
      echo json_encode($data);
     
 } catch (Exception $e) {
  echo $e->getMessage();
 }
endif;

Ответы (1 шт):

Автор решения: Crasher

Потому что у Вас приходит невалидный json ответ. Посмотртите в вкладке Network в консоли ChromeDevTools что приходит в ответе

→ Ссылка