我一直致力于项目中的删除帖功能。这一切在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的东西,但似乎没有任何结果。
答案 0 :(得分:5)
您的请求错误,如果您希望使用$ _POST超级全局,则不应发送json。将其作为常规网址编码表单数据发送
$.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);
}
});
答案 1 :(得分:5)
尝试将dataType更改为&#39; text&#39;和contentType到&#39; application / json&#39;
答案 2 :(得分:1)
您正在“删除”该帖子两次。
删除此行:$post->deletePost($deletePostID);
答案 3 :(得分:0)
在框架和PHP中,这是一个非常奇怪的问题,在你的控制器中只是:
echo(json_encode($status));
对我有用..