如何去除浏览器请求favicon.ico文件带来的干扰?
发布于 11 年前 作者 mscrm 102105 次浏览 最后一次编辑是 8 年前

浏览器每次发起请求,都会同时请求一次favicon.ico(本次不讨论浏览器缓存了favicon.ico)

我用http.createServer()打开了8080端口来监听post过来的数据,然后根据post过来的数据进行下一步任务处理。

但我发现,每次post数据过来,都是请求了favicon.ico导致出现了莫名的bug…

<form method=“post” action=“http://xxx.xx.xxx.xxx:8080”> <input type=‘hidden’ name=‘username’ value=‘USERNAME’> <input type=‘submit’ value=‘ok’>

http.createServer(function(req, res) {

if(req.url == ‘/favicon.ico’){ res.end(); }else{ req.addListener(‘data’,function(postDataChunk) { var postdata =’’; postdata+=postDataChunk; });

req.addListener(‘end’,function(){ console.log(postdata); });
}

res.end();

}).listen(8080);

post提交几次看看结果。。。。。 该如何过滤掉favicon的请求。。。。新人求救

5 回复

我没有用Express,而是写了returnData(‘query_string’,res){}响应ajax数据请求,写了returnFile(‘filename’,res){}响应文件请求,然后把需要公开的文件列表放在publicFileList=[]里保证安全(如果请求的文件不在里面就返回404),其中就包括’favicon.ico’图标文件。

对图标文件的请求是无法过滤的,这是由浏览器发起的。你可以响应404…另外,看你写的处理方法也可以啊,直接终止响应。

url匹配下favicon.ico,匹配到直接返回

connect 有个专门用来处理 favicon 的中间件,我印象中。

回到顶部