首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向到URL,IE 8忽略片段

重定向到URL,IE 8忽略片段
EN

Stack Overflow用户
提问于 2012-07-12 01:11:19
回答 2查看 2K关注 0票数 2

我有一个MVC3项目,它大量使用片段来动态加载不同页面的内容。有一些页面可以回发到控制器来上传文件。上传完成后,我希望将用户重定向回他们所在的页面。我将返回的URL传递给upload操作,然后在上载完成后将用户重定向回该页面。

这在Chrome和Firefox中工作正常,但IE忽略了片段,我被带回了我的解决方案的根页面。下面是我用来重定向用户的代码。

代码语言:javascript
复制
public virtual ActionResult UploadFile(string returnURL)
{
    // Do some work here...
    return Redirect(returnURL);
}

有没有办法迫使IE 8保留这个片段,并像Chrome和Firefox那样运行?

如果没有,有没有解决这个问题的标准方法?

我还回顾了Eric Law关于https重定向和片段的article。它提供了一些关于不同浏览器如何处理这些片段的见解。

EN

回答 2

Stack Overflow用户

发布于 2012-07-12 01:32:37

在这一点上,你可能会遇到麻烦。URL片段对于URL唯一性并不重要,例如在决定是否将页面添加到浏览器缓存或将URL添加到浏览器导航历史记录时。

URL查询包含在URL唯一性分类中,但片段不包含。

IE8可能正在重定向到带有片段的URL,但它正在从浏览器缓存加载根页面(没有片段),因为该片段对于URL缓存等价性测试并不重要。

测试这一理论的一种强力方法可能是清除浏览器缓存,并在服务器上将所有页面标记为无缓存,看看这是否会改变IE8行为。如果当页面不在浏览器缓存中时,IE8会重定向到所需的页面,并且片段完好无损,那么这就证实了这个理论。这只是一个测试场景,不是用于生产部署的解决方案。

票数 2
EN

Stack Overflow用户

发布于 2012-07-27 03:15:09

我已经构建了一个小应用程序来重现它。它在IE9和Chrome上的表现与预期一致。

我有两个建议给你:

  • 如果是缓存问题,在URL中添加时间戳可能会有所帮助。尝试像这样构建一个网址:

http://localhost:50173/Sample/?timestamp=26.07.2012%2021:11:00#myLocation

  • 如果它不起作用,一个解决方法可能是在最后呈现一个javascript,它将导航:

window.location = window.location + "#myLocation";

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11437862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档