【发布时间】:2020-04-24 14:58:00
【问题描述】:
在我的代码中,我可以毫无错误地发布数据。但我无法从 php 文件返回数据以显示在我的 html 标记中。如果我删除 dataType:'json',它可以正常工作,但你知道我无法获取数据。我在 datatype = json 时收到此错误
error : {"readyState":4,"responseText":"<head>\n<meta charset=\"UTF-8\">\n</head>\n-1","status":200,"statusText":"parsererror"}
我的ajax;
$(document).ready(function(){
// like and unlike click
$(".like, .unlike").click(function(){
var id = this.id; // Getting Button id
var split_id = id.split("_");
var text = split_id[0];
var postid = split_id[1]; // postid
// Finding click type
var type = 0;
if(text == "like"){
type = 1;
}else{
type = 0;
}
// AJAX Request
$.ajax({
url: 'likeunlike.php',
type: 'post',
data: {baslikid:postid,type:type},
dataType: 'json',
success: function(data){
var likes = data['likesonuc'];
$("#sonuc_"+postid).text(likes); // setting likes
if(type == 1){
$("#like_"+postid).css("color","#ffa449");
$("#unlike_"+postid).css("color","lightseagreen");
}
if(type == 0){
$("#unlike_"+postid).css("color","#ffa449");
$("#like_"+postid).css("color","lightseagreen");
}
},
error: function(data){
alert("error : " + JSON.stringify(data));
}
});
});
});
我的 php 文件(我没有在上面分享以避免混淆。我从 $likesonuc 得到 int 结果)
$likesonuc= $total_likes - $total_unlikes;
echo json_encode($likesonuc);
【问题讨论】:
-
听起来您的 JSON 无效。查看网络面板中的http请求。它是否有从您的 php 返回的其他标记?
-
这似乎很能说明问题:
"responseText":"<head>\n<meta charset=\"UTF-8\">\n</head>\n-1"如果数据不是 JSON,则使用dataType: 'json'将不起作用。 -
@epascarello 我查看网络面板,但我的 php 文件没有返回任何内容
-
您的消息中的 responseText 显示了 HTML 标记,因此它正在返回一些内容。您需要显示您的 PHP 文件,以便有人可以指出它返回 html 的原因。
-
是的,你是对的,我删除了 head 标签。我现在没有收到任何错误,但数据也没有。我的ajax成功部分可能有问题吗?或者有什么方法可以查看来自php的哪些数据?