在用户登录前,Asp.net MVC应用程序引发js语法错误
作者:互联网
检查浏览器控制台时,为什么我的应用程序在登录页面向我抛出一些javascript错误?
我已将web.config设置为包含以下内容:
<authentication mode="Forms">
<forms loginUrl="~/Login" timeout="90" />
</authentication>
然后,我有一个_AnonymousUserLayout.cshtml,其中包含以下脚本:
<!-- Bootstrap JS -->
<script src="@Url.Content("~/Scripts/jquery-1.8.2.js")"></script>
<script src="@Url.Content("~/Scripts/bootstrap.js")"></script>
<!-- Supersized JS -->
<script src="@Url.Content("~/Scripts/supersized.core.3.2.1.js")"></script>
在我的Login.cshtml(通过布局文件中的RenderBody()渲染)中,我包括以下内容:
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
在我的Global.asax.cs中,我定义了此过滤器:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new System.Web.Mvc.AuthorizeAttribute());
}
最后,我在_ViewStart.cshtml中重定向到登录页面:
@{
if (Request.IsAuthenticated)
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
else
{
Layout = "~/Views/Shared/_AnonymousUserLayout.cshtml";
}
}
每当我未登录并重定向到登录页面时,在开发人员控制台中都会不断看到以下错误:
Uncaught SyntaxError: Unexpected token < :54837/Login?ReturnUrl=%2FScripts%2Fkendo%2F2013.1.319%2Fjquery.min.js:1
Uncaught SyntaxError: Unexpected token < :54837/Login?ReturnUrl=%2FScripts%2Fkendo%2F2013.1.319%2Fkendo.all.min.js:1
Uncaught SyntaxError: Unexpected token < Login?ReturnUrl=%2FScripts%2Fkendo%2F2013.1.319%2Fkendo.aspnetmvc.min.js:1
我究竟做错了什么?
解决方法:
根据我的ASP.Net经验(不是MVC):如果启用了表单身份验证,则必须绕过登录页面中正在使用的所有脚本和图像的身份验证.这是通过使用以下示例中的web.config的location元素完成的:
<location path="<your path>jquery-1.8.2.js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
标签:asp-net-mvc-4,asp-net,javascript,c,asp-net-mvc 来源: https://codeday.me/bug/20191122/2061359.html