Estoy creando una aplicación con node y express y la configuro de tal manera que cuando se carga la página, se envían algunos encabezados al cliente. ¿Cómo extraigo esa información del lado del cliente? Estoy usando JS/jQuery en el lado del cliente. Aquí está el código en cuestión-
app.get('/', (req, res) => { models.game_session.build({ sid: req.sessionID }).save().then((data) => { let options = { "root": __dirname, headers: { "x-sid": data.id } } res.sendFile('/index.html', options, (err) => { if (err) { res.send(err) } }); }).catch((e) => { res.send(`There was an error`); }); });Estoy guardando el ID de la sesión en la base de datos y luego envío el archivo de índice al cliente. Como puede ver en el objeto de opciones, quiero incluir el ID de sesión en el encabezado para enviarlo con el archivo de índice. ¿Cómo puedo recuperar esa información en el lado del cliente? No estoy seguro de si estoy haciendo esto de la manera correcta. ¡Agradezco cualquier ayuda!
Desafortunadamente, no hay una API para obtener los encabezados de su página actual, debe generar otra solicitud de su JS/Jquery para obtener los encabezados:
Como hacer eso:
Cómo obtener datos de lectura del encabezado de respuesta en jquery/javascript
Acceder a los encabezados HTTP de la página web en JavaScript
EDITAR: lo siento, no leí lo suficientemente de cerca. En realidad no es posible, y he aquí por qué:
https://stackoverflow.com/a/220233/4045156
Lo que está haciendo está bien, pero también podría (una vez que la página se carga en el lado del cliente) realizar otra solicitud al servidor y luego responder con un objeto JSON simple. Sin embargo, depende totalmente de ti. Por supuesto, esto significa otra solicitud, pero de todos modos no parece posible evitar otra solicitud.