2017-02-16 3 views
0

私はエクスプレスを使用してクッキーを設定するために以下を使用します。Express:フェッチがクッキーを設定できません

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

直接訪問する場合は、クッキーを設定できます。

<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> 

Submitをクリックした場合は、クッキー、 を設定することができます。しかし[テスト]をクリックした場合、クッキーを設定することはできません。

なぜですか?

+0

、{方法:「 POST '}) '? – hjpotter92

+0

Cookieが設定されていないことをどのように確認していますか? – robertklep

+0

私は@ hjpotter92 @ hjpotter92 – Eason

答えて

0

fetch()を使用して、明示的にクッキーはリクエストで送られるべきであることを伝える必要があります:

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

参考:MDN `( '/ B' をフェッチされた何

関連する問題