2016-01-29 5 views
2

У меня есть следующий код на мой server.js экспресс-приложения:куки не посылаются по первому требованию

var express = require('express'); 
var fallback = require('express-history-api-fallback'); 
var compress = require('compression'); 
var favicon = require('serve-favicon'); 
var prerenderio = require('prerender-node'); 
var config = require('getconfig'); 

var app = express(); 

app.use(function (req, res, next) { 
    if (config.environment !== 'local') { 
     res.cookie('config', JSON.stringify(config), { secure: true }); 
    } 
    else { 
     res.cookie('config', JSON.stringify(config)); 
    } 
    next(); 
}); 

app.get('/versioncheck', function(req, res) { 
    return res.json({ version: config.version }); 
}); 

app.use(compress()); 
app.use(prerenderio.set('prerenderToken', config.prerender_token).set('protocol', 'https')); 
app.use(express.static(__dirname, { maxAge: 31536000 })); 
app.use(favicon(__dirname + '/favicon.ico')); 
app.use(fallback('index.html', { root: __dirname })); 

const PORT = process.env.PORT || 1010; 

app.listen(PORT, function() { 
    console.log('Server started on port %s', PORT); 
}); 

Первый промежуточного Я настраиваю с курьерским довольно просто: Он отправляет cookie клиенту с информацией о конфигурации. Проблема, с которой я сталкиваюсь, заключается в том, что этот файл cookie не отправляется клиенту по первому запросу. Для всех последующих запросов он работает нормально. Что мне не хватает?

ответ

0

У меня была аналогичная проблема некоторое время назад.

В начале первого запроса cookie не существует.

Печеньки отправляются во время запроса, а не раньше.

Итак, в начале второго запроса cookie установлен (из запроса 1).

+0

Я вижу вашу точку зрения, но, другими словами, вы говорите, что я никогда не смогу получить cookie с сервера и прочитать его на клиенте в самом первом запросе? –

+0

Вот что я хотел указать. Возможно, вы можете добавить тег в свой html-заголовок или использовать тег # в URL-адресе. – Mijago

+0

Я все еще делаю больше исследований по этому поводу. Странно, что если я впервые попрошу mysite.com, он не будет установлен в cookie. Однако, если я впервые запрошу mysite.com/foo, cookie будет установлен. –