在node.js中先fetch后进行跳转报错的问题
我的任务是在接收到访问请求后,先用fetch获取数据,再使用response.setHeader('Location','http://www.b.com')进行跳转,但是没有跳转成功,在node服务端报错。
代码如下:
import fetch from 'node-fetch';
let ret = await fetch('http://www.a.com');
let data = await ret.json();
//这里假设response已经为获取到的对象。
response.setHeader('Location','http://www.b.com');
response.statusCode = 302;
response.end();
错误提示如下:
Error: Can't set headers after they are sent.
但如果将fetch放到后面,就可以成功跳转,不会报错,代码如下:
import fetch from 'node-fetch';
//这里假设response已经为获取到的对象。
response.setHeader('Location','http://www.b.com');
response.statusCode = 302;
response.end();
let ret = await fetch('http://www.a.com');
let data = await ret.json();
但我先获取数据,再进行跳转的目的就没有达到。
所以应该怎么解决这个问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果使用的是Express的话,试一下redirect方法
这里有个类似的问题供参考:https://stackoverflow.com/que...
你 response 时,必须等待请求回来之后再设置