我正在使用PHP,JS,Axios和Ajax为instagram之类的应用程序提供类似功能。我能够正确启动想要单击以显示帖子的特定a标签的click事件处理程序。我在执行ajax调用后收到的响应将不允许我检查响应的状态。我从我的php文件中传递了$ response ['status'] =“ liked”,但是我通过ajax调用获得的数据变量却不正确。
我首先使用jquery制作了该功能,但想使用axios来避免jquery框架大小带来的较长加载时间。
我试图使用res.data ['status']选择状态,但这也不起作用。我似乎得到一个结合了json响应的数组。
// this selects the exact like button for the post I want to like using
// the data attribute id
let btn = document.querySelector("a.like");
btn.addEventListener("click", function(e){
let postId = this.dataset.id;
let link = this;
console.log("test");
axios.post('ajax/likePost.php',{
postId : postId
})
.then (function (res){
console.log(res);
if (res.data == "liked") {
console.log("we zitten ion de liked");
let likes = link.nextSibling.innerHTML;
link.children.src = "images/liked.svg";
likes++;
link.nextSibling.innerHTML=likes;
} else {
console.log("we zitten ion de niet liked");
let likes = link.nextSibling.innerHTML;
link.children.src = "images/like.svg";
likes--;
link.nextSibling.innerHTML=likes;
}
})
.catch(function (error) {
console.log(error);
});
e.preventDefault();
});
相关分类