2017-02-16 98 views
0

我使用下面的代码使用express设置cookie。快递:抓取无法设置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> 

如果点击提交,可以设置cookie的, 但如果点击测试,不能设置cookie的。

为什么?

+0

什么是'取( '/ B',{方法:“ POST'})'? – hjpotter92

+0

你是如何检查cookie没有被设置的? – robertklep

+0

我编辑问题@ hjpotter92 – Eason

回答

0

使用fetch(),你需要明确地告诉它的cookie应以请求一起发送:

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

参考:MDN