18

多亏了 StackOverFlow,我以为我已经回答了这个问题,但我匆忙回答,结果证明这不是我问题的真正原因。

我检查了我的 Apache 访问日志:

这是我在 Google Chrome 浏览器上浏览我的网络应用程序。

127.0.0.1 - - [06/Jan/2010:22:17:35 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:17:36 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:17:38 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042

这是我在 IE7 上浏览我的网络应用程序。

127.0.0.1 - - [06/Jan/2010:22:21:49 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:21:50 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042

这是我在 Firefox 上浏览我的网络应用程序。

127.0.0.1 - - [06/Jan/2010:22:18:08 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:09 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:11 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:18:12 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146

这只是我四处点击。但是请注意,对于每个页面请求,firefox 似乎都加载了两次页面,并且影响了我的 PHP 脚本,因为它们执行了两次并两次插入到我的数据库中!

为什么会这样?我正在使用 Firefox 3.5.6。我猜这是 Firefox 的问题,而不是 PHP/Apache 的问题?

4

9 回答 9

13

您在 Firefox 中安装了哪些插件,它们可能会默默地发出请求,尤其是 FireBug。尝试关闭萤火虫并查看它是否仍然发生。

正如下面评论中提到的,最新版本的 FireBug 不应该这样做,所以如果不是,请尝试禁用所有插件(或在安全模式下运行 FireFox),看看它是否仍然发生

于 2010-01-06T22:29:39.980 回答
12

查看第二个请求的 Accept 标头。它看起来是对图像的请求吗?如果是这样,您可能在“img”标签上有一个空的“src”属性或在导致第二次请求的 CSS 属性中的一个空的“url”定义。

更多信息在这里:http: //icanhascode.com/2008/06/the-mystery-of-the-multiple-requests/

一般来说,这个问题很难追踪。

于 2010-01-06T22:35:12.180 回答
7

另一天我遇到了同样的问题。解决方案被提出

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

更高的代码。在它之前加载了一些css代码。

于 2011-09-29T20:41:50.170 回答
5

这对我来说也是一个字符集声明问题 - 将它从所有元标记中取出并在其他地方声明!

于 2011-07-30T11:24:54.000 回答
2

正如 Michael Morton 所提到的,缺少 SRC 的 IMG 标签可能是个问题。也可以是 A 标记上的空 HREF 属性。我使用 jQuery 快速识别它们:

http://www.planbox.com/blog/development/coding/browser-send-same-request-twice-or-multiple-times.html

简而言之,在 Firebug 中运行它:

$('img[src=""],a[href=""]')
于 2011-01-24T20:16:29.220 回答
1

此行是一些 Dreamweaver 驱动的 HTML,并导致浏览器加载两次(删除了 doc 类型并禁用了 firebug):

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
于 2011-01-09T17:00:09.590 回答
0

这些都不适合我。许多小时的担心......这是我的问题:

我有一个 HTML 链接,里面有一个按钮。我发现这是问题所在,因为当我在 IE 上测试它时,按钮不起作用(按钮在 Firefox 中仍然有效)。

错误的:

<a href=''><button class='btn'>Test</button></a>

对:

<a class='btn' href=''>Test</a>

现在可以工作,不再需要双击。

于 2012-02-01T16:13:22.960 回答
0

就我而言,我有这样的重复标签:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<!-- more code -->

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

从我的 Blogger 模板中删除它后,Firefox 停止重新加载页面。

于 2012-10-25T14:12:14.647 回答
0

我正在使用 mozilla firefox 46.0.1,我遇到了同样的问题。但我注意到它仅在我的 php 脚本出现警告错误时发生。在我的 php 脚本中设置error_reporting(0);停止了脚本的双重执行。当然,在尝试了上述所有建议之后。

于 2016-06-17T08:14:38.193 回答