调试程序时候,请求一个方法,但是日志里记录总会打印两次 直接在控制器里做日志然后返回 依然如此。语言是 PHP.
stackoverflow 类似问题: stackoverflow 传送门
但是我的很明显不是 icon 或者 src=""这样的问题 因为调试时候 直接就返回 不加载这些,插件的原因也尝试了,无痕模式依然如此,在 Safari 和 Firefox 下是正常的。很奇怪。求赐教
1
mitoop OP 求不沉
|
2
qgy18 2017-02-24 23:20:06 +08:00 via iPhone
禁用所有扩展再试试呢?
|
3
indooorsman 2017-02-24 23:36:01 +08:00 via Android
贴代码和调试截图啊………
|
4
hxsf 2017-02-24 23:37:52 +08:00
页面预加载功能导致的 ? 看看其他页面是不是也被请求了
|
5
nfroot 2017-02-24 23:38:22 +08:00
之前在 cnblogs 也看到这个问题了,是浏览器 BUG
|
6
nfroot 2017-02-24 23:39:24 +08:00
忘记说了,这样的问题出在 30X 状态码的页面(会 2 次访问这个 URL ,尽管 30X 指向的 URL 是其他地址)
|
7
nfroot 2017-02-24 23:40:40 +08:00
|
8
xiaoz 2017-02-25 00:03:59 +08:00 via iPhone
是不是你鼠标坏了?
|
10
mitoop OP @indooorsman 好吧 这个似乎不用贴截图吧 因为问题症状很明朗啊
|
12
mitoop OP @nfroot 恩 就是想来万能的 V2EX 求下原理 我的并不是 302 引起的 中文症状和这个是一样的 [传送门]( http://www.yiiframework.com/forum/index.php/topic/12889-%E5%A5%87%E6%80%AA%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8Caction%E6%AF%8F%E6%AC%A1%E8%AE%BF%E9%97%AE%E9%83%BD%E8%87%AA%E5%8A%A8%E8%BF%90%E8%A1%8C%E4%B8%A4%E6%AC%A1/)
|
14
mitoop OP |
15
Felldeadbird 2017-02-25 07:11:14 +08:00 via iPhone
试下在源码默认访问页面看看是否触发 2 次访问。不知道源码默认是什么?当前页面 ctrl + u
一般这个现象可能是 伪静态没区分好 不存在的资源。浏览器在资源不存在时直接访问了程序。正确的应该是返回 404 状态。 |
16
Felldeadbird 2017-02-25 07:11:51 +08:00 via iPhone
源码模式…不是源码默认。手机输入法打错了
|
17
solarsolo 2017-02-25 12:28:45 +08:00 via iPad
我记得开 f12 的网络调试就会发两次,貌似在某个版本修复了
|
18
loy6491 2017-02-25 13:21:11 +08:00 via iPhone
是在地址栏输入地址了吗, chrome 会提前请求一次以加快访问速度。这个做 web 应该都知道吧,不知道你是不是这个问题
|
19
mitoop OP @Felldeadbird 直接访问的 action 没有到伪静态那一步 我晚上再试试
|
23
mitoop OP @Felldeadbird @hxsf @indooorsman @loy6491 @nfroot @qgy18 @solarsolo @xiaoz 问题还是 favicon.ico 的事 即使没有加载到页面 chrome 还会去请求 favicon.ico 文件 导致两次记录的问题 本地加了 favicon.ico 这个文件 正常了
|
24
mitoop OP 之前粗心了 以为直接到 action 不会去请求 favicon.ico 文件 network 下是有的 只有 chrome 会有这种情况 Safari 和 Firefox 不会。
|
25
sn01615 2017-12-10 20:43:17 +08:00
是返回的数据长度太小了~
|
26
zohner 2018-04-03 16:58:28 +08:00
百度搜到这个帖,楼主解决了么,我今天也遇到这个问题,很简单的代码
``` app.get('/webhooks', function(req, res){ console.log('d') res.header('Cache-Control', 'no-cache, no-store, must-revalidate'); // HTTP 1.1 res.header('Pragma', 'no-cache') // HTTP 1.0 res.header('Expires', '0'); // Proxies res.send("deploy finish") }) ``` 在 chrome 刷新页面都会执行两次,在 firefox 就正常 |