我试图在成功完成POST请求时调用jQuery GET请求。这些功能正常工作,数据正在从GET请求中提供,但是,它在POST之前响应。
function getCartCount() {
var d = new Date().getTime();
$.get("/ajax/countCart.php", { "rand": d }, function(res) {
$("#view-cart").text(res);
alert(res);
});
}
$(".products form img").click(function() {
$.post("/ajax/addToCart.php", $(this).parent("form").serialize())
.done(function(data) {
alert(data);
})
.always(getCartCount());
});
上面的代码首先从GET请求生成一个警告框,然后从POST生成一个警告框,这是不理想的,因为GET的值取决于首先完成的POST。
答案 0 :(得分:2)
.always(getCartCount());
^^
您正在立即调用该函数并将返回值传递给always
。
删除()
以传递函数本身。
.always(getCartCount);
答案 1 :(得分:0)
这是因为您没有等待POST请求成功完成。这样做 -
$(".products form img").click(function() {
$.post("/ajax/addToCart.php", $(this).parent("form").serialize())
.done(function(data) {
alert(data);
getCartCount();
})
});