JQuery $ .ajax 302仅在第一次调用时重定向

时间:2013-01-22 12:49:34

标签: javascript ajax api jquery

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

first AJAX request being redirected

1 个答案:

答案 0 :(得分:0)

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