(跪求帮助!)asp.net form验证导致JQUERY报错的问题

epwqgdnvrhok 2009-12-08 10:44:47
问题是这样的
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXAUTH" defaultUrl="Default.aspx"></forms>
</authentication>
<authorization>
<deny users="?"></deny>
</authorization>
以上是在form验证里要用到的配置文件
下面是html
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>

</head>
<body>
<form id="form1" runat="server">
<div>

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="登 陆" OnClientClick="return confirm('确定要登陆!');"/>

</div>
</form>
</body>
</html>
<script type="text/javascript">
$(function() {
alert("ok");
});
</script>
以上运行的时候,那个老提示脚本有错误,错误代码如下:
$(function() {
alert("ok");
});

当我把<deny users="?"></deny>这一行代码注释后就正常了
这个问题我昨天搞了一下午都没有解决
想请各位高手帮忙解决一下,拜托各位了。
...全文
249 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshi123 2009-12-08
  • 打赏
  • 举报
回复
你还是没有改对啊

<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
设置 compilation debug="true" 可将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true">
</compilation>
<!--
通过 <authentication> 节可以配置 ASP.NET 用来
识别进入用户的
安全身份验证模式。
-->
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXAUTH" defaultUrl="Default.aspx"> </forms>
</authentication>

<authorization>
<deny users="?"> </deny>
</authorization>

<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
<location path="js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>

原理是先限制对所有文件的未授权访问,然后再对js目录“挖个洞”,让这个目录下的文件不用身份验证就可访问
epwqgdnvrhok 2009-12-08
  • 打赏
  • 举报
回复
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
设置 compilation debug="true" 可将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true">
</compilation>
<!--
通过 <authentication> 节可以配置 ASP.NET 用来
识别进入用户的
安全身份验证模式。
-->
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXAUTH" defaultUrl="Default.aspx"></forms>
</authentication>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
<location path="js">
<system.web>
<authorization>
<deny users="?"></deny>
</authorization>
</system.web>
</location>
</configuration>
按你说的我改了,还是把那个JS的错误
jshi123 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 epwqgdnvrhok 的回复:]

现在提示
错误 2 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 E:\project\asp.net\FormLogin\web.config 43
我现在用的是XP目前是没有装IIS
这个错误 怎么解决
[/Quote]

不要在location配置节里写authentication,
把它恢复成你原来的样子(放回原先的system.web中)
然后在web.config下面加上这几句(只需要加这几句,不要其它的)
<location path="js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
epwqgdnvrhok 2009-12-08
  • 打赏
  • 举报
回复
我的jquery文件放在

项目/js/jquery-1.3.2.min.js里
iyori 2009-12-08
  • 打赏
  • 举报
回复
你 jquery-1.3.2.min.js 文件也放在里面了? 哎
epwqgdnvrhok 2009-12-08
  • 打赏
  • 举报
回复
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
设置 compilation debug="true" 可将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true">
</compilation>
<!--
通过 <authentication> 节可以配置 ASP.NET 用来
识别进入用户的
安全身份验证模式。
-->

<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
<location path="js">
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXAUTH" defaultUrl="Default.aspx"></forms>
</authentication>
<authorization>
<deny users="?"></deny>
</authorization>
</system.web>
</location>
</configuration>

现在提示
错误 2 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 E:\project\asp.net\FormLogin\web.config 43
我现在用的是XP目前是没有装IIS
这个错误 怎么解决
jshi123 2009-12-08
  • 打赏
  • 举报
回复
哦,是我搞错了
13行改成改成下面这样试下
<location path="js">
epwqgdnvrhok 2009-12-08
  • 打赏
  • 举报
回复
错误 2 <location> 路径属性必须为相对虚拟路径。它不能包含“?”、“:”、“\”、“*”、“"”、“<”、“>”或“|”中的任何一个。 E:\project\asp.net\FormLogin\web.config 13
<location path="*.js">
phper2008 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jshi123 的回复:]
这时因为加了 <deny users="?">以后,对js文件的访问就必须通过验证后才可以,在验证前是访问不到的。

在web.config的最后加一段(和system.web节是同级的):
XML code<locationpath="*.js"><system.web><authorization><allowusers="*"/></authorization></system.web></location>
[/Quote]
确实
jshi123 2009-12-08
  • 打赏
  • 举报
回复
这时因为加了 <deny users="?">以后,对js文件的访问就必须通过验证后才可以,在验证前是访问不到的。

在web.config的最后加一段(和system.web节是同级的):

<location path="*.js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
epwqgdnvrhok 2009-12-08
  • 打赏
  • 举报
回复
那个$(function() {
alert("ok");
});这是
$(document).ready(function(){alert("ok");});的简写
我赶确定代码绝对不会有问题
我感觉是那个form机制的影响jquery
iyori 2009-12-08
  • 打赏
  • 举报
回复
是不是想要写成这样的?
$(document).ready(function(){alert("ok");});
iyori 2009-12-08
  • 打赏
  • 举报
回复
<script type="text/javascript">
$(function() {
alert("ok");
}); </script>

js 代码 是由客户端的浏览器解释执行的,跟你服务端的配置没啥关系的,还是检查一下你的js 代码吧
SK_Aqi 2009-12-08
  • 打赏
  • 举报
回复
不怎么明白真相的路过
epwqgdnvrhok 2009-12-08
  • 打赏
  • 举报
回复
谢谢解决了

62,265

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧