¿Cuál es la mejor manera de reenviar una solicitud POST a otra URL (en Nuxt SSR)? por ejemplo
GET /some-request - should render page POST /some-request - should be forwarded to /api/some-request
Más ejemplos
GET /some-request
: solo debería mostrar la página (eso funciona bien)GET and IF XMLHttpRequest
: si se solicita ajax, reenviarlo a /api/some-request
esto también funciona bien con este truco asyncData({res, ssrContext}) { if (req.headers['x-requested-with'] === 'XMLHttpRequest') { redirect({res, ssrContext}, route.fullPath.replace('/some-request', '/api/some-request') ); return; } } function redirect(ctx, url) { ctx.ssrContext.redirected = {}; ctx.res.writeHead(302, { Location: url, }); ctx.res.end(); }
Esto funciona bien con la solicitud GET
Necesito exactamente lo mismo con la solicitud POST.
Pensé que podía usar serverMiddleware
export default (req, res, next) => { if ( req.headers['x-requested-with'] === 'XMLHttpRequest') { req.originalUrl = '/api/some-request' } next() }
Esto no funciona, pero no estoy seguro de cuál es la mejor manera de hacerlo. Y una cosa más. La solicitud POST puede devolver JSON o Renderizar HTML.