Javascript ASP.NET MVC应用程序正在抛出一个403.14
我有一个ASP.NETMVC应用程序。该应用程序使用客户端JavaScript框架。当我访问主URL时,此应用程序工作正常。该URL如下所示:Javascript ASP.NET MVC应用程序正在抛出一个403.14,javascript,angularjs,asp.net-mvc-4,Javascript,Angularjs,Asp.net Mvc 4,我有一个ASP.NETMVC应用程序。该应用程序使用客户端JavaScript框架。当我访问主URL时,此应用程序工作正常。该URL如下所示: http://localhost:1801/my-app/Item?i=123 http://localhost:1801/#/my-app/Item?i=123 但是,当我在旧浏览器(IE8)中加载应用程序时,用户会被重定向到包含哈希(#)的URL。新的URL如下所示: http://localhost:1801/my-app/Item?i=123
http://localhost:1801/my-app/Item?i=123
http://localhost:1801/#/my-app/Item?i=123
但是,当我在旧浏览器(IE8)中加载应用程序时,用户会被重定向到包含哈希(#)的URL。新的URL如下所示:
http://localhost:1801/my-app/Item?i=123
http://localhost:1801/#/my-app/Item?i=123
对于较旧的浏览器,ASP.NET MVC返回的状态代码为403.14。我已经确认路线是问题所在。我通过复制第二个URL并将其粘贴到Chrome中实现了这一点。换句话说,应用程序在第一个URL的Chrome中工作,然而,我在第二个URL的Chrome中得到了403.14
如何使ASP.NET MVC接受第二个URL?据我所知,客户端框架正在添加散列作为某种回退方法,因为IE8不支持HTML5路由
谢谢大家! 我们需要更多的信息来解释这里发生了什么。我们谈论的是哪种客户端框架?URL在哪里生成(由这个客户端框架或Razor生成)?您可能并不真的希望MVC接受散列URL;相反,您可能想解决为什么您的客户端框架尝试对服务器URL使用客户端(哈希)路由的问题。散列的目的是指示路由是用javascript处理的,而不是由服务器处理。@AndrewCounts-AngualrJS是客户端框架。URL只是MVC路由。然而,出于某种原因,在IE9中,AngularJS执行客户端重新路由,并包括“#”在我看来,您仍然需要重写这个问题,并且可能会显示一些示例代码,说明何时使用角度路由,何时使用服务器路由。这不是ASP.Net MVC的问题,因为它永远不会生成
,也不会为服务器路由生成一个。要么这些确实是Angular没有处理的角度路由,要么Angular错误地生成了外部链接。