mitoop
V2EX  ›  问与答

单次请求 chrome 会触发两次 不得其解

  •  
  •   mitoop · Feb 24, 2017 · 8491 views
    This topic created in 3548 days ago, the information mentioned may be changed or developed.
    • 调试程序时候,请求一个方法,但是日志里记录总会打印两次 直接在控制器里做日志然后返回 依然如此。语言是 PHP.

    • stackoverflow 类似问题: stackoverflow 传送门

    • 但是我的很明显不是 icon 或者 src=""这样的问题 因为调试时候 直接就返回 不加载这些,插件的原因也尝试了,无痕模式依然如此,在 Safari 和 Firefox 下是正常的。很奇怪。求赐教

    26 replies  •  2018-04-03 16:58:28 +08:00
    mitoop
    mitoop
    OP
    Feb 24, 2017
    1
    求不沉
    qgy18
    qgy18
    Feb 24, 2017 via iPhone
    2
    禁用所有扩展再试试呢?
    indooorsman
    indooorsman
    Feb 24, 2017 via Android
    3
    贴代码和调试截图啊………
    hxsf
    hxsf
    Feb 24, 2017
    4
    页面预加载功能导致的 ? 看看其他页面是不是也被请求了
    nfroot
    nfroot
    Feb 24, 2017
    5
    之前在 cnblogs 也看到这个问题了,是浏览器 BUG
    nfroot
    nfroot
    Feb 24, 2017
    6
    忘记说了,这样的问题出在 30X 状态码的页面(会 2 次访问这个 URL ,尽管 30X 指向的 URL 是其他地址)
    nfroot
    nfroot
    Feb 24, 2017
    7
    随手搜了一下 就是这个了

    http://www.cnblogs.com/lyzg/p/6237841.html
    xiaoz
    xiaoz
    Feb 25, 2017 via iPhone
    8
    是不是你鼠标坏了?
    mitoop
    mitoop
    OP
    Feb 25, 2017
    9
    @qgy18 3Q Jerry Qu 尝试过了 在同事电脑也试了下 目测 chrome 要背这个锅
    mitoop
    mitoop
    OP
    Feb 25, 2017
    10
    @indooorsman 好吧 这个似乎不用贴截图吧 因为问题症状很明朗啊
    mitoop
    mitoop
    OP
    Feb 25, 2017
    11
    @hxsf 3Q 之前有看到这个说法 不是很明白
    mitoop
    mitoop
    OP
    Feb 25, 2017
    13
    @xiaoz Big 黑色脸.jpg 这种错误不会的。
    Felldeadbird
    Felldeadbird
    Feb 25, 2017 via iPhone
    15
    试下在源码默认访问页面看看是否触发 2 次访问。不知道源码默认是什么?当前页面 ctrl + u
    一般这个现象可能是 伪静态没区分好 不存在的资源。浏览器在资源不存在时直接访问了程序。正确的应该是返回 404 状态。
    Felldeadbird
    Felldeadbird
    Feb 25, 2017 via iPhone
    16
    源码模式…不是源码默认。手机输入法打错了
    solarsolo
    solarsolo
    Feb 25, 2017 via iPad
    17
    我记得开 f12 的网络调试就会发两次,貌似在某个版本修复了
    loy6491
    loy6491
    Feb 25, 2017 via iPhone
    18
    是在地址栏输入地址了吗, chrome 会提前请求一次以加快访问速度。这个做 web 应该都知道吧,不知道你是不是这个问题
    mitoop
    mitoop
    OP
    Feb 27, 2017
    19
    @Felldeadbird 直接访问的 action 没有到伪静态那一步 我晚上再试试
    mitoop
    mitoop
    OP
    Feb 27, 2017
    20
    @solarsolo 试了下 关闭调试 还是两次
    mitoop
    mitoop
    OP
    Feb 27, 2017
    21
    @loy6491 地址 在地址栏里 就手动刷新一下
    loy6491
    loy6491
    Feb 27, 2017
    22
    @mitoop 快捷键刷新( F5 或 ⌘R )会请求两次么
    mitoop
    mitoop
    OP
    Feb 27, 2017
    23
    @Felldeadbird @hxsf @indooorsman @loy6491 @nfroot @qgy18 @solarsolo @xiaoz 问题还是 favicon.ico 的事 即使没有加载到页面 chrome 还会去请求 favicon.ico 文件 导致两次记录的问题 本地加了 favicon.ico 这个文件 正常了
    mitoop
    mitoop
    OP
    Feb 27, 2017
    24
    之前粗心了 以为直接到 action 不会去请求 favicon.ico 文件 network 下是有的 只有 chrome 会有这种情况 Safari 和 Firefox 不会。
    sn01615
    sn01615
    Dec 10, 2017
    25
    是返回的数据长度太小了~
    zohner
    zohner
    Apr 3, 2018
    26
    百度搜到这个帖,楼主解决了么,我今天也遇到这个问题,很简单的代码
    ```
    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 就正常
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1057 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 105ms · UTC 18:44 · PVG 02:44 · LAX 10:44 · JFK 13:44
    ♥ Do have faith in what you're doing.