1

我编写了一个函数来使用 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。

第一个 AJAX 请求被重定向

4

1 回答 1

0

以某种方式首先在 alertify 外部调用该函数清除了这个错误......奇怪。

于 2013-01-22T13:20:37.837 回答