我的asp.net应用程序出现了一个非常奇怪的问题,它花了我一个时间来追踪,但我仍然不知道是什么导致了这种行为。在Global.asax中设置会话变量会导致AJAX错误
如果我在Application_PreRequestHandlerExecute
事件中设置了一个会话变量,那么我的外部JavaScript文件将被忽略,从而导致大量错误。我简化了下面的问题。
E.g.
我曾文件名为JScript.js
包含代码:
function myAlert() {
alert("Hi World");
}
在我Default.aspx
文件我引用的JS的代码:
<script src="JScript.js" type="text/javascript"></script>
和身体onload
事件我打电话myAlert()
功能:
<body onload="myAlert()">
终于在Global.asax
文件:
Private Sub Application_PreRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs)
HttpContext.Current.Session("myVar") = "MyValue"
End Sub
如果运行Default.aspx
文件,你会看到js函数心不是所谓的,但是,如果你注释掉外部JS叫的那么代码Global.asax
线与功能当页面加载时执行。
这是为什么?
您是否为此应用程序启用了通配符映射? http://weblogs.asp.net/scottgu/archive/2007/03/04/tip-trick-integrating-asp-net-security-with-classic-asp-and-non-asp-net-urls。 aspx – 2010-03-26 17:14:29