C# javascript在IIS中不工作
我的页面卸载javascript工作正常,但在IIS中不工作,我需要在IIS中为此授予任何权限吗?这是我的javascript不工作C# javascript在IIS中不工作,c#,javascript,iis,C#,Javascript,Iis,我的页面卸载javascript工作正常,但在IIS中不工作,我需要在IIS中为此授予任何权限吗?这是我的javascript不工作 window.onbeforeunload = InitializeService; function InitializeService() { InitializeService1(); if (checkdisposition.disposition == "") { var agree = confirm("You Di
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();
}
}
大多数浏览器不允许在
onbeforeuload
处理程序期间发送XMLHttpRequest
另外,在处理onbeforeunload
时不应显示提示。如果有未保存的数据,您应该只返回一个字符串
从Alexei的回答来看,我猜真正的问题在于,您是通过在URL栏中键入localhost
来运行页面的。但在部署时,您键入的是已部署服务器的名称。正如Alexei所建议的,您不应该在代码中硬编码localhost
。因为看起来你想在客户端做,所以你应该使用
大多数浏览器不允许在
onbeforeuload
处理程序期间发送XMLHttpRequest
另外,在处理onbeforeunload
时不应显示提示。如果有未保存的数据,您应该只返回一个字符串
从Alexei的回答来看,我猜真正的问题在于,您是通过在URL栏中键入localhost
来运行页面的。但在部署时,您键入的是已部署服务器的名称。正如Alexei所建议的,您不应该在代码中硬编码localhost
。因为看起来你想在客户端做,所以你应该使用
“非IIS案例”和“IIS案例”的站点URL是什么?打开Web请求时,您可能遇到跨域限制”http://localhost:54329“在IIS情况下(因为站点会不同(通常)
请注意,正如@Juan Mendes指出的那样,XMLHttpRequest在那时可能根本不起作用,并且在页面结束之前肯定不会返回异步结果。页面结束。您的站点的“非IIS案例”和“IIS案例”的URL是什么?您在打开Web请求时可能会遇到跨域限制"http://localhost:54329“在IIS情况下(因为站点会不同(通常)
请注意,正如@Juan Mendes所指出的,XMLHttpRequest在那时可能根本不起作用,并且在页面结束之前肯定不会返回异步结果。Web服务器与客户端脚本无关。而且您的缩进非常糟糕。您不应该
确认()
或警报()
在unbeforeunload事件中。只返回一个字符串并让浏览器进行提示。否则,您的用户将收到两个提示。这很可能是某种跨站点脚本问题。IIS只是服务器。您浏览的是运行此代码的哪个URL?尝试在ajax调用上使用相对URL运行Java是不常见的IIS中的脚本代码(根据您的示例,这也不太可能是您的案例)。请使用浏览器的开发工具(即在IE中按F12和调试脚本/查看控制台)为问题提供更好的错误信息。@AlexeiLevenkov。我写了很多(IIS)ASP代码在JavaScript中出现,但问题实际上是关于客户端JavaScriptWeb服务器与客户端脚本无关。而且您的缩进非常糟糕。您不应该confirm()
或alert()
在unbeforeunload事件中。只返回一个字符串并让浏览器进行提示。否则,您的用户将收到两个提示。这很可能是某种跨站点脚本问题。IIS只是服务器。您浏览的是运行此代码的哪个URL?尝试在ajax调用上使用相对URL运行Java是不常见的IIS中的脚本代码(根据您的示例,这也不太可能是您的案例)。请使用浏览器的开发工具(即在IE中按F12和调试脚本/查看控制台)为问题提供更好的错误信息。@AlexeiLevenkov。我写了很多(IIS)ASP代码在JavaScript中出现,但问题实际上是关于客户端JavaScriptIt可能是,但不管主机是什么,它都会工作相同。@Juan Mendes如果这是与浏览器相关的问题,为什么它与本地主机一起工作?@Hiren:添加了一个关于问题可能是什么的注释,但看起来你已经解决了它可能是什么,b但不管主机是什么,它都会工作。@Juan Mendes如果这是与浏览器相关的问题,为什么它与本地主机一起工作?@Hiren:添加了一条关于问题可能是什么的注释,但看起来你已经解决了。谢谢你的帮助。你完全正确,我在IE中测试了它,它在第行给出了错误“myReq.open(“GET”,url,false);”。我能解决这个问题吗?要获取站点的url,可以从服务器渲染它,或者使用window.location作为基础,或者有时使用相对url。请注意,这不太可能对您的整体情况有所帮助,因为在“导航”之外与服务器通信是个坏主意“.Hi谢谢你的帮助,你完全正确,我在IE中测试了它,它在‘myReq.open’(GET),url,false)行给出了错误信息'。我可以解决这个问题吗?要获取站点的Url,可以从服务器渲染,也可以使用window.location作为基础,或者有时使用相对Url。请注意,这不太可能对您的整体情况有所帮助,因为在“导航离开”时与服务器通信是个坏主意。
var url = location.host + "/WebServices/PageUnloadCall.asmx?op=Page_Unload";