浏览器每次发起请求,都会同时请求一次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的请求。。。。新人求救
我没有用Express,而是写了returnData(‘query_string’,res){}响应ajax数据请求,写了returnFile(‘filename’,res){}响应文件请求,然后把需要公开的文件列表放在publicFileList=[]里保证安全(如果请求的文件不在里面就返回404),其中就包括’favicon.ico’图标文件。
对图标文件的请求是无法过滤的,这是由浏览器发起的。你可以响应404…另外,看你写的处理方法也可以啊,直接终止响应。
url匹配下favicon.ico,匹配到直接返回
connect 有个专门用来处理 favicon 的中间件,我印象中。