0

我的页面卸载 javascript 工作正常,但在 IIS 中没有,我需要为此在 IIS 中授予任何权限吗?这是我的 javascript 不工作

window.onbeforeunload = InitializeService;
function InitializeService() {
    InitializeService1();
    if (checkdisposition.disposition == "") {
        var agree =   confirm("You Did Not Save Disposition, Are You Sure You Want To Navigate?");
        if (agree) {
            return true;
        }
        else {
            return "You Did Not Save Disposition ";
        }
    }
}

function InitializeService1() {
    if (window.XMLHttpRequest) {
        var url = "http://localhost:54329/WebServices/PageUnloadCall.asmx?op=Page_Unload";
        myReq.onreadystatechange = checkStatus1;
        myReq.open("GET", url, false); // true indicates asynchronous request
        myReq.send();
    }
}
4

2 回答 2

2

大多数浏览器不允许在处理程序XMLHttpRequest期间发送onbeforeunload

此外,在处理onbeforeunload. 如果有未保存的数据,您应该只返回一个字符串

根据 Alexei 的回答,我猜真正的问题是您通过在localhostURL 栏中输入来运行您的页面。但是在部署时,您输入的是已部署服务器的名称。就像 Alexei 建议的那样,您不应该localhost在代码中硬编码。由于看起来您想在客户端执行此操作,因此您应该使用https://developer.mozilla.org/en/DOM/window.location

var url = location.host + "/WebServices/PageUnloadCall.asmx?op=Page_Unload";
于 2012-04-23T18:23:46.413 回答
1

您网站的“非 IIS 案例”和“IIS 案例”的网址是什么?在 IIS 情况下打开对“http://localhost:54329”的 Web 请求时,您可能会遇到跨域限制(因为站点会不同(通常是http://localhost:80)。

请注意,正如@Juan Mendes 指出的那样,当时 XMLHttpRequest 可能根本不起作用,并且在页面关闭之前肯定不会返回异步结果。

于 2012-04-23T18:33:27.690 回答