我编写了一个使用POST调用本地API的函数:
function setOpenGraph(setValue) {
requestData = {
user : $.user._id,
opengraph : setValue
};
console.log(requestData);
$.ajax({
type: 'POST',
data: requestData,
dataType : 'json',
url: '/api:setopengraph',
success: function (data) {
$.user.opengraph = setValue;
console.log(data);
}
});
}
当在页面上的链接的单击事件上调用时,这是有效的。但是,当我将其称为对alertify弹出窗口的响应时,无法将数据发送到api:
alertify.set({ labels: { ok: "ON", cancel: "OFF" } });
alertify.confirm( 'message here', function (e) {
if (e) {
$(".toggleopengraph").html('turn facebook sharing off');
setOpenGraph(true);
} else {
$(".toggleopengraph").html('turn facebook sharing on');
setOpenGraph(false);
}
});
**在两种情况下,console.log()都返回Object {user:“XXXXXXXXXXXXXX”,opengraph:false} **
Bellow您可以看到控制台输出,其中第一个请求(由alertify启动)被重定向,并且没有POST到API。第二个(由.click()启动)将数据发送到API。
答案 0 :(得分:0)
以某种方式首先在alertify之外调用该函数清除了这个错误...奇怪。