MVC / JQuery keepalive / heartbeat - 不工作?

时间:2015-10-30 13:11:38

标签: jquery asp.net-mvc asp.net-mvc-4

我已经看到了一些使用JQuery通过使用$.post发布到.html文件来保持会话活跃的示例。此代码位于_Layout.cshtml文件中。

这是我正在使用的代码:

$(function () {

   // Keep alive with a call every minute
   window.setInterval("keepSessionAlive()", 60000);

   function keepSessionAlive() {
        console.log("beat!");
        $.ajax({
            type: "POST",
            url: "heartbeat.html",
            success: function () {
                console.log("success");
            },
            error: function () {
                console.log("fail");
            }
        });
    }
});

以下是我的问题:

  1. 我认为这只是通过POST来保持会话活着。这是对的吗?

  2. 为什么它会出现错误功能但没有成功?是因为我的html文件只是一个评论,还是POST无法找到我的html文件?该文件位于_Shared和Views文件夹中,并包含在我的项目中。

1 个答案:

答案 0 :(得分:0)

  

我相信这只是通过POST来保持会话活着。   我是对的吗?

嗯,是的,不是。会话由处理请求的服务器保持活动,而不是由发送请求的浏览器保持活动,因此请求必须正常工作才能使会话保持活动状态。

  

为什么会出现错误,而不是成功?是因为我的   html文件只是一个评论,或者是POST无法找到我的HTML   文件?

不评估响应,因此不是因为它只是评论。

错误是因为服务器无法处理请求,很可能是因为找不到该文件。您应该使用浏览器中的开发人员工具中的网络视图来查看服务器发送的实际错误消息。