想跨域调用一个接口,按照官方文档, nuxt.config.js中配置如下: modules: ['@nuxtjs/axios'], axios: { proxy: true, baseURL: 'http://localhost:8000/api', // prefix: '/api', // it not work
credentials: true,
}, proxy: { '/api/douban': { target: 'https://api.douban.com/v2/book/search', changeOrigin: true, pathRewrite: { '^/api': '' },
},
},调用部分代码: async search({ commit, state }, data) { const res = await this.$axios.$get('/douban/book/search', { params: data });
commit('SET_BOOK_QUERY', res); return res;
},但是不起作用,在http-proxy-middleware包中增加如下日志: function shouldProxy (context, req) { var path = (req.originalUrl || req.url) console.log('shouldProxy path:', context, path);// 输出:shouldProxy path: /api/douban /admin/tag
return contextMatcher.match(context, path, req)
}说明配置确实被正确初始化了,问题是只有刷新页面进行服务端渲染时才有这个日志,这时的path是页面路由而不是api请求,而页面上的请求却没有被代理。很奇怪,不知道是哪里配置有问题,请各路大神帮忙。
添加回答
举报
0/150
提交
取消