请求路由时 获得返回状态码 控制台显示是304 网页中显示是200
发布于 10 年前 作者 blacksun 6490 次浏览 最后一次编辑是 8 年前

<script> function Connection(url,callback){ if (window.XMLHttpRequest){ var xmlhttp=new XMLHttpRequest(); } else{ var xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”); }
xmlhttp.onreadystatechange=function(){ if(xmlhttp.status==200) { callback(xmlhttp.status); } } xmlhttp.open(“GET”,url,true); xmlhttp.send(); }

	 function check(){
		Connection("http://localhost:3000/check",function(callback){
		 console.log(callback);
		})
	 }

setInterval("check()",3000);

</script>

/check code

router.get(’/check’,function(req,res){ fs.readFile(’./result.html’,function(err,data){ if(err) throw err; res.send(200,data.toString()); }) })

控制台显示 GET GET /check 304 2ms GET /check 304 1ms GET /check 304 1ms

网页中显示200 。。。 请问这是怎么回事 是否跟Python 一样 可以设置不允许重定向 返回304 就会返回304 不是重定向到200

4 回复

网页控制台里是重定向以后的页面的 200 吧, 确认下 url

标准有规定,如果服务器返回304,客户端浏览器在有缓存情况下可以视为200处理 手动setHeader If-None-Match或者If-Modified-Since就可以获取到真实状态码 这是刚才别人回答的。。。 可是 setHeader If-None-Match或者If-Modified-Since 头的值设成什么呢。。。。

res.send(200,data.toString()); 卧槽。你都指定了抛200出去。还问。

设置的200 控制台显示的是304 我设置了 If-Modified-Since = 0 后 每次控制台都返回 200了

回到顶部