Неожиданный конец ввода JSON от вызова ajax

Я работаю над функцией удаления сообщений в своем проекте. Все работает отлично в PHP, но теперь я хотел бы сделать это в Ajax, чтобы предотвратить обновление и все.

Во всяком случае, когда я выполняю мой вызов ajax, я получаю сообщение об ошибке:

SyntaxError: Unexpected end of JSON input at Object.parse (native) at n.parseJSON (http://localhost/imdstagram/public/js/jquery-2.2.3.min.js:4:6401) at Ab (http://localhost/imdstagram/public/js/jquery-2.2.3.min.js:4:8347) at z (http://localhost/imdstagram/public/js/jquery-2.2.3.min.js:4:11804) at XMLHttpRequest.<anonymous> (http://localhost/imdstagram/public/js/jquery-2.2.3.min.js:4:15680) 

В нем говорится, что эта ошибка находится в строке 35, строка 35 отправляет меня

 console.log(error); 

Во всяком случае, чтобы дать вам лучший обзор, вот мой вызов Ajax:

 $(document).ready(function(){ $(".post__delete").on("click", function(e){ var postDeleteID = $('.deleteID').val(); $.ajax({ url: "ajax/deletePost.php", type: "POST", data: JSON.stringify(postDeleteID), dataType: 'json', contentType: false, cache: false, processData: false, success: function(data) { }, error: function (request, status, error) { console.log(error); } }); e.preventDefault(); }); }); 

И мой код deletePost.php:

 <?php include_once("../classes/Post.class.php"); session_start(); $post = new Post(); if(!empty($_POST)){ $deletePostID = $_POST['deletePostID']; $post->deletePost($deletePostID); if($post->deletePost($deletePostID)){ $status['delete'] = "success"; } else { $status['delete'] = "failed"; } header('Content-Type: application/json; charset=utf-8', true); echo json_encode($status); } ?> 

Я пробовал много вещей, как изменение dataType и contentType, но ничего не получается.

Ваш запрос неверен, вы не должны отправлять json, если вы хотите использовать супер-глобальный $ _POST. Отправьте его как обычные данные формы, закодированные в URL-адресе

  $.ajax({ url: "ajax/deletePost.php", type: "POST", data: {postDeleteID: postDeleteID}, dataType: 'json', cache: false, success: function(data) { }, error: function (request, status, error) { console.log(error); } }); 

Попробуйте изменить dataType на «text» и contentType на «application / json»

Вы дважды удаляете сообщение.

Удалите эту строку: $post->deletePost($deletePostID);

Это очень странная проблема в рамках фреймворков и PHP в целом, в вашем контроллере:

 echo(json_encode($status)); 

Работал для меня ..