0

I am building an app with node and express and set it up such that when the page loads, some headers are sent to the client. How do I extract that information on the client side? I am using JS/jQuery on the client side. Here's the code in question-

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`);
  });
});

I am saving the session ID in the database then sending the index file to the client. As you see in the options object, I want to include the session ID in the header to be sent with the index file. How can I retrieve that info on the client side? I'm not sure if I am going about this in the right way- appreciate any help!

wariofan1
  • 481
  • 2
  • 4
  • 17

2 Answers2

1

Unfortunately there isn't an API to get the headers from you current page, you need to generate another request from you JS/Jquery to get the headers:

How to do that:

How to get read data from response header in jquery/javascript

Accessing the web page's HTTP Headers in JavaScript

Community
  • 1
  • 1
1

EDIT: sorry, didn't read closely enough. It's not actually possible, and here's why:

https://stackoverflow.com/a/220233/4045156

What you are doing is fine, but you could also (once the page loads on the client side) make another request to the server and then respond with a simple JSON object. It's totally up to you though. This of course means another request, but it doesn't seem possible to avoid another request anyways.

Community
  • 1
  • 1
Sam
  • 845
  • 7
  • 20