![](/img/trans.png)
[英]SyntaxError: Unexpected token < in JSON at position 0” error in AJAX
[英]Ajax return error Unexpected token < in JSON at position 4
我正在為學校項目開發小型的“ facebook贊”應用程序,而Ajax請求存在一些問題,我正在嘗試使用Jquery Ajax做不喜歡的systeme,但是當我在控制台中遇到此錯誤時,調試我的“數據”
Uncaught SyntaxError:位置4中的JSON中的意外令牌<
這是我的ajax電話:
$(document).ready(function(){
$('.like-btn').on('click', function(){
var post_id = $(this).data('id');
$clicked_btn = $(this);
if ($clicked_btn.hasClass('glyphicon glyphicon-thumbs-up')) {
var action = 'like';
} else if($clicked_btn.hasClass('glyphicon glyphicon-thumbs-up liked')){
var action = 'unlike';
}
$.ajax({
type: "POST",
url: 'index.php?action=likes',
data:{
'action': action,
'post_id': post_id
},
success: function(data){
alert("succes");
console.log(data);
res = JSON.parse(data);
if (action == "like") {
$clicked_btn.removeClass('glyphicon glyphicon-thumbs-up');
$clicked_btn.addClass('glyphicon glyphicon-thumbs-up liked');
} else if(action == "unlike") {
$clicked_btn.removeClass('glyphicon glyphicon-thumbs-up liked');
$clicked_btn.addClass('glyphicon glyphicon-thumbs-up');
}
// Affiche le nombre de like dislike
$clicked_btn.siblings('span.likes').text(res.likes);
$clicked_btn.siblings('span.dislikes').text(res.dislikes);
// Change le style du boutton suivant si user click dessus
$clicked_btn.siblings('glyphicon glyphicon-thumbs-
down').removeClass('glyphicon glyphicon-thumbs-
down').addClass('glyphicon glyphicon-thumbs-down disliked');
}, error: function(jq,status,message) {
alert('A jQuery error has occurred. Status: ' + status + ' - Message: '
+ message);
console.log(status + message);
}
});
});
這是我的likes.php:
<?php
function getRating($id)
{
global $pdo;
$rating = array();
$likes_query = "SELECT COUNT(*) FROM rating_info WHERE post_id = ? AND
rating_action='like'";
$dislikes_query = "SELECT COUNT(*) FROM rating_info
WHERE post_id = ? AND rating_action='dislike'";
$likes_rs = $pdo->prepare($likes_query);
$dislikes_rs = $pdo->prepare($dislikes_query);
$likes_rs->execute(array($id));
$dislikes_rs->execute(array($id));
$likes=$likes_rs->fetch();
$dislikes=$dislikes_rs->fetch();
$rating = [
'likes' => $likes[0],
'dislikes' => $dislikes[0]
];
return json_encode($rating);
}
if (isset($_POST['action'])) {
$user_id=$_SESSION['id'];
$return = $_POST;
$post_id = $_POST['post_id'];
$action = $_POST['action'];
switch ($action) {
case 'like':
$sql="INSERT INTO rating_info (user_id, post_id, rating_action)
VALUES ($user_id, $post_id, 'like')
ON DUPLICATE KEY UPDATE rating_action='like'";
break;
case 'dislike':
$sql="INSERT INTO rating_info (user_id, post_id, rating_action)
VALUES ($user_id, $post_id, 'dislike')
ON DUPLICATE KEY UPDATE rating_action='dislike'";
break;
case 'unlike':
$sql="DELETE FROM rating_info WHERE user_id=$user_id AND
post_id=$post_id";
break;
case 'undislike':
$sql="DELETE FROM rating_info WHERE user_id=$user_id AND
post_id=$post_id";
break;
default:
break;
}
$q = $pdo->prepare($sql);
$q->execute();
echo getRating($post_id);
exit(0);
}
我試過使用數據類型:'json',但它也返回一個錯誤,實際上可以在我的數據庫中插入值,但是它不能處理css的更改,並且我遇到了這個錯誤。 我不習慣Ajax,這可能很簡單,對不起,如果我說一個愚蠢的問題。 預先感謝您的時間和消息,請參見。
我找到了解決方案,謝謝@ADyson,首先,我已經在自己的文件中更改了php,並且還在php文件中設置了查詢參數,所以是的,我認為問題出在我的index.php中,謝謝大家
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.