【问题标题】:Why isn't my AJAX call to an HTTPHandler working?为什么我对 HTTPHandler 的 AJAX 调用不起作用?
【发布时间】:2019-06-26 13:21:56
【问题描述】:

我正在尝试通过使用 HTTPHandler 并对它进行 AJAX 调用来重新创建 solution seen here 以保持会话活动。

该解决方案似乎没有奏效,当我尝试通过添加 alert() 来调试它时;就在 $.get(); 之前警报();从未被解雇。我复制并粘贴了示例中的代码,所以我没有遗漏分号之类的东西。我什至设置了一个 alert();在 setTimeout() 之前;那个成功了!

function setHeartbeat() {
    alert("I get here!");
    setTimeout("heartbeat()", 300000); // every 5 min
}

function heartbeat() {
    alert("I never seem to fire off!");
    $.get(
        "/SessionHeartbeat.ashx",
        null,
        function(data) {
            setHeartbeat();
        },
        "json"
    );
}

有什么想法吗?

【问题讨论】:

  • 为什么你的 heartbeat() 在引号中?使它像 setTimeout(function(){ heartbeat(); }, 300000); // 每 5 分钟
  • 不是你的问题,但是 setTimeout 触发一次,setInterval 反复触发
  • alert("I get here!); 缺少结束 "
  • 谢谢,我编辑了我的帖子。

标签: asp.net ajax httphandler


【解决方案1】:

slon 和 Hans Kesting 都是对的。

工作的javascript是:

    $(document).ready(function () {

        //alert("Document is ready.");

        // set the initial call
        setHeartbeat();

        function setHeartbeat() {
            //alert("setHeartbeat");
            setInterval(function () {
                heartbeat();
            }, 10000); // every 10 sec
        }

        function heartbeat() {
            //alert("heartbeat");
            $.get(
                "/SessionHeartbeat.ashx",
                null,
                function(data) {
                    setHeartbeat();
                },
                "json"
            );
        }

    });

谢谢你们!

【讨论】:

    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 2011-04-30
    • 2023-03-15
    • 2011-10-31
    • 2020-05-15
    • 2011-09-18
    • 2023-03-22
    相关资源
    最近更新 更多