私は自分のプロジェクトで投稿の削除機能に取り組んできました。これはすべて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の変更など、多くのことを試しましたが、うまくいかないようです。
あなたのリクエストは間違っています。$ _ POSTスーパーグローバルを使用する場合は、jsonを送信しないでください。通常の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」に、content Typeを「application/json」に変更してみてください
投稿を2回「削除」しています。
次の行を削除します:$post->deletePost($deletePostID);
これは、フレームワーク内の非常に奇妙な問題であり、PHP一般的に、コントローラーでは:
echo(json_encode($status));
私のために働いた..