求教。。为什么return res.redirect(xxxx)后。。代码还会继续执行之后的代码??
部分代码如下
return res.redirect('/reg');
console.log("-------POST-------")
res.redirect('/reg');
执行后有输出"-------POST-------",并报Error: Can’t set headers after they are sent.的异常。因为重复发送页面请求了。。求解决方法
7 回复
这个很奇怪。贴多点代码看看?
其它的代码没什么特别的。。就是nodejs开发指南里的那个例子。。哎。。
个人感觉是 console.log()都能输出
@lazyfish88 发完整代码……(正因为你觉得没什么特别,所以你找不出原因)
这个return后边的语句永远也不会执行的,因为return已经将整个作用于后边的代码割掉了。就像java里面的一样。你看一下是不?
@lazyfish88 发完整代码吧。。。无法复现啊!
我不知道redirect执行什么操作,但根据我的猜测,应该是执行客户端重定向,客户端重定向是往http响应头中加入location之类的代码,这部分是通过头发送的,估计在你的redirect以前已经发送过http响应头了。。 这个信息也是提示http头已经发送后无法再设置 http响应头。