在浏览器关闭事件之前,Ajax调用Code-Behind无效

时间:2017-09-01 11:25:39

标签: javascript c# jquery asp.net silverlight

我正在使用Silverlight 4.0浏览器内应用程序。我需要在点击关闭(十字按钮或Alt + F4)事件时弹出一个弹出窗口。由于Close事件发生在本地浏览器上,因此在Close事件上没有触发任何服务器端事件。我试图在Default.aspx文件中使用 OnBeforeUnload 事件,如下所述:

    function areYouSure() {
        $.ajax({
            type: "POST",
            async: false,
            url: "default.aspx/GetDialogStatus",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                if (msg.d)
                {
                    confMessage = "Unsaved Changes error message";
                }
                else {
                    confMessage = nochanges;
                }
            },
            error: function(error) {
                alert(error);
            }

        });

        return confMessage;
    }

    var areYouReallySure = false;         
    $(document).ready(function () {
        window.onbeforeunload = areYouSure;
    });

对于守则背后:

    [WebMethod]
    public static bool GetDialogStatus()
    {
        if(**Business Condition Satisfies**)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

检查本地环境时,代码运行正常。但是,当部署到Dev,Test Server时,弹出窗口不会出现,当ajax调用发生时,我们会看到一个身份验证弹出窗口。任何人都可以遇到类似的问题吗?

0 个答案:

没有答案