我有一些用Jade编写的代码,里面有一个链接。链接的目的地由Jade生成。单击链接时,我从控制台注意到GET请求正在执行两次。
这是为什么?我该如何解决这个问题?
这是我的代码:
玉文件
ul.media-list
each paper in paperList
div.panel.panel-default
div.panel-body
li.media
div.media-left.media-middle
a(href='/publication/view/#{paper.id}')
| Some image
div.media-body
div.btn-group(role='group')
//!!! When this link is being clicked, GET is executed twice !!!
a.btn.btn-default(href='/publication/view/#{paper.id}')
| View
控制台:
GET /publication/view/123 200 490ms - 5623
GET /publication/view/123 304 458ms - -
app.js:
var publication = require('./routes/publication');
app.use('/publication', publication);
publication.js:
var express = require('express');
var router = express.Router();
router.get('/view/:id', function (req, res) {
var data;
//Some database functions here
//Just an example
res.render('publication', {someData: data});
});
答案 0 :(得分:9)
这只是一个假设,但看起来您的浏览器甚至在点击它们之前就使用某种预测算法来预加载链接。 Google Chrome do such things
Express.js通过304 Not Modified
响应回复了第二个响应,表明它已发送时带有有效ETag值,以验证以前缓存的响应。
尝试在浏览器中禁用网络操作预测。以下是它在Google Chrome设置中的显示效果(Settings
- > Show advanced settings...
):
或者,您可以尝试在实际点击链接之前通过将鼠标悬停在链接上来验证是否发送了第一个请求,而不是点击它。
答案 1 :(得分:0)
它的Chrome问题没有在Firefox或资源管理器中发生