我编写了一个函数来使用 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} **
在下面,您可以看到控制台输出,其中第一个请求(由 alertify 发起)被重定向并且不 POST 到 API。第二个(由 .click() 发起)将数据发布到 API。