求教。。为什么return res.redirect(xxxx)后。。代码还会继续执行之后的代码??
发布于 10 年前 作者 lazyfish88 8443 次浏览 最后一次编辑是 8 年前

部分代码如下


	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响应头。

回到顶部