asp.net-mvc – IE9从URL中删除#part(适用于Firefox!)
我正在使用ASP.NET MVC路由AngularJS路由的应用程序.
我的网址看起来像: https://example.com/Request/#/Search/Request/123 当我分解时(http://example.com/Request)由ASP.NET MVC路由处理.即(Area = Request,controller =“Default”,action =“Index”) (#/ Search / Request / 123)由AngularJS路由处理. 当我在http://localhost:8080/时,这非常有效 问题是我将此应用程序部署到https://example.com/ 在这种情况下,如果用户点击上面的链接(通过电子邮件收到),IE 9仅识别(https://example.com/Request/“)并且服务器永远不会获得(#/ Search / Request / 123). 我们在Web服务器上实现了企业SSO. SSO客户端拦截http请求,并在身份验证后使用URL重定向回请求的页面. 如果#fragie未作为http请求URL的一部分发送,则sso无法重定向回同一页面. 我认为这是一个常见的场景/问题.我会不断改变URL方案作为最后的手段.例如(# 至 !). 怎么解决这个? 解决方法
片段(#后面的URL部分)不一定由浏览器发送到服务器端.它们仅用于客户端使用(导航到文档中的特定位置,JavaScript支持).
RFC 2396第4.1节:
(重点补充) 因此,除非您将#更改为其他字符,否则您提供的URL方案将无法可靠地运行.或者,你可以use JavaScript to transfer the information from the fragment in an input that will be reliably passed back to the server.但请注意,解决方案只有在浏览器中启用JavaScript时才有效,因此它(也)不是100%可靠的解决方案,可以与所有客户端一起使用. 无论哪种方式,使用不带片段的URL是一种更可靠的方法,如果您期望服务器解释该部分,则IMO是更好的设计选择. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 模板 – ASP.NET MVC 2:如何为集合中的每个项调用DisplayF
- asp.net-mvc – 如何在ASP.NET MVC中实现流畅的api?
- asp.net-mvc – asp.net MVC Url.Content()CDN重定向
- asp.net-mvc – mvc razor @helper可以返回非编码标签吗?
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- 怎样恢复能在asp.net中使用c#下载文件 – >最好的方法(对于
- asp.net-mvc – 使用Razor的ASP.NET MVC 3 – 将条件表达式
- 比较自托管:WCF与HttpListener
- asp.net核心2.0发布到azure得到IIS 502.5错误
- asp.net – IIS 8中的URL中缺少.aspx
- asp.net按钮点击w / javascript“你确定吗?”在
- 如何将ASP.NET用户和路由数据传递给JavaScript?
- asp.net-mvc – ASP.NET MVC 2和使用WIF(Windows
- asp.net-mvc – 将类应用于@ Html.ValidationMes
- asp.net – GridView中的工具提示
- asp.net – ConfigurationManager.GetSection返回
- asp.net – 我应该在我的HttpHandler中设置IsReu
- asp.net-mvc – 应用程序服务层作为静态类
- asp.net-mvc-3 – MVC3 / Razor缩略图/调整大小图
- asp.net网站默认文件在子文件夹中