Firefox 向我的 ASP.Net 网站发出重复请求。它将请求一个页面,获得响应,然后立即再次发出相同的请求(好吧,几乎相同——见下文)。这种情况发生在这个特定网站的每个页面上(但不会发生在任何其他网站上)。 IE 不会这样做,但 Chrome 也会这样做。
我已确认响应中没有 Location header ,页面中也没有 Javascript 或元标记会导致重新请求页面(如果其中任何一个为真,IE 将重新请求页面以及)。
我已经在多台机器上的多个 Firefox 安装中确认了这种行为。版本各不相同,但都是 3.x。
两个请求之间的唯一区别是 Accepts header 。对于第一个请求,它看起来像这样:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
对于第二个请求,它看起来像这样:
Accept: */*
所有情况下的 Content-Type 响应 header 都是:
Content-Type: text/html; charset=utf-8
还有一些奇怪的事情——即使 Firefox 两次请求页面,它使用第一个响应并丢弃第二个。我在页面上放置了一个计数器,它随着每个请求而递增。我可以看到响应返回(通过 Charles 代理)。 Firefox 第一次会得到“1”,第二次会得到“2”。但出于某种原因,它会显示“1”。
Chrome 表现出完全相同的行为。考虑到 Accepts header 的不同,我怀疑这是一个协议(protocol)级别的问题,但我以前从未见过这种情况。
最佳答案
检查您没有任何 img
标签具有空的 src
属性。
FireFox(显然还有 Safari 和 Chrome)会将此解释为对网站的请求,从而为您提供重复的请求。
有一个Mozilla support request关于它,还有一篇不错的文章 here讨论每个浏览器(和每个版本)在这种情况下的作用。
关于asp.net - 为什么某些浏览器会两次请求我的 ASP.Net 网站上的所有页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515784/