2017-02-16 3 views
0

Я использую нижеследующее, чтобы установить куки-файл, используя экспресс.Экспресс: fetch неспособный установить cookie

app.use(require('cookie-parser')()); 
app.get('/a', function (req, res) { 
    console.log(req.cookies); 
    res.cookie('aaa', 'bbb'); 
    res.send('something'); 
}); 

app.post('/b', function (req, res) { 
    console.log(req.cookies); 
    res.cookie('ccc', 'ddd'); 
    res.send('something'); 
}) 

Если вы посетите непосредственно a, можете установить cookie.

<form method="POST" action="/bb"> 
    <label>name</label> 
    <input type="submit" value="login" /> 
</form> 
<div id='test'>fetch</div> 
<script> 
    var test = document.getElementById('test'); 
    test.onclick = function() { 
     fetch('/b', { 
      method: 'POST' 
     }).then((data) => { 
      data.text().then(function(data) {console.log(data)}); 
     }) 
    } 
</script> 

Если нажмите отправить, можно установить печенье, Но если тест мышей, не может установить кук.

Почему?

+0

Что 'выборки ('/ Ь', {метод: ' POST '}) '? – hjpotter92

+0

Как вы проверяете, что cookie не установлен? – robertklep

+0

Я редактирую проблему @ hjpotter92 – Eason

ответ

0

При использовании fetch(), вам нужно явно указать это, что куки должны быть отправлены с просьбой:

fetch('/b', { method : 'post', credentials : 'include' }) 

Ссылка: MDN

Смежные вопросы