谁能告诉我,koa request服务器转发为什么前端访问是个404
这是代码,做转发用的,但是ctx.response.body会前端的是404
router.get('/getData', async (ctx, next) => {
let opts = Object.keys(ctx.query).reduce((pre, item, index) => {
return pre += `${item}=${encodeURIComponent(ctx.query[item])}&`
}, '?')
// const getData = await request.get(`https://searchapi.hc360.com/getmmtlast.cgi${opts}`)
// console.log('getData', getData.query);
request({
url: `https://searchapi.hc360.com/getmmtlast.cgi${opts}`,
method: 'GET',
encoding: null
}, function(err, res, data) {
if (!err && res.statusCode == 200) {
console.log('data', Iconv.decode(data, 'gbk'));
ctx.response.body = Iconv.decode(data, 'gbk')
} else ctx.response.body = err;
})
await next();
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为request是一个异步的过程,请求
/getData
时并没有执行到 ctx.response.body ,这里await request的结果赋给ctx如果你要是为了学习转发接口的,可以百度查一下
如果是为了解决接口跨域,或者是跨服务请求接口,可以使用
koa-server-http-proxy
可以直接针对自定义前缀的接口进行转发