想问一下为什么我使用fetch提交表单数据,express无法设置cookie,而直接使用form标签时却可以设置。为了方便,我把模拟的代码全贴上来<body><form method="POST" action="/bb"> <label>login</label> <input type="submit" value="login" /></form><div id='test'>fetch</div><script> var test = document.getElementById('test'); test.onclick = function () { fetch('/bb', { method: 'POST' }).then( (data) => { data.text().then(function(data) {console.log(data)}); }) }</script></body>
1 回答
慕后森
TA贡献1802条经验 获得超5个赞
与XMLHttpRequest一样,从服务器返回的Set-Cookie响应头是Forbidden header name,因此无法使用response.headers.get()进行读取。 浏览器负责处理设置新的Cookie,cookie可以通过document.cookie读取。但fetch的默认行为是完全忽略Set-Cookie头。想从服务器接受Cookie,您必须使用credentials选项。
添加回答
举报
0/150
提交
取消