mitoop
V2EX  ›  问与答

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

  •  
  •   mitoop · Feb 24, 2017 · 8104 views
    This topic created in 3375 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
        1
    mitoop  
    OP
       Feb 24, 2017
    求不沉
    qgy18
        2
    qgy18  
       Feb 24, 2017 via iPhone
    禁用所有扩展再试试呢?
    indooorsman
        3
    indooorsman  
       Feb 24, 2017 via Android
    贴代码和调试截图啊………
    hxsf
        4
    hxsf  
       Feb 24, 2017
    页面预加载功能导致的 ? 看看其他页面是不是也被请求了
    nfroot
        5
    nfroot  
       Feb 24, 2017
    之前在 cnblogs 也看到这个问题了,是浏览器 BUG
    nfroot
        6
    nfroot  
       Feb 24, 2017
    忘记说了,这样的问题出在 30X 状态码的页面(会 2 次访问这个 URL ,尽管 30X 指向的 URL 是其他地址)
    nfroot
        7
    nfroot  
       Feb 24, 2017
    随手搜了一下 就是这个了

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