正在获取跨源请求,即使我设置了set-cookie
并且服务器提供了以下信息,Chrome也无法读取credentials: 'include'
:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://127.0.0.1:3000
这是一个带有提取API的react(^ 16.6.3)项目
我尝试使用Chrome,Safari,Firefox和移动浏览器,但是所有这些浏览器均无法读取和保存Cookie。在Chrome中,没有Set-Cookie
字段,但在Safari和Firefox中存在。
当我使用 postman 对其进行测试时,就可以了,下一个请求将发送cookie。
fetch('http://API_ROOT/api', {
credentials: 'include',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=utf-8',
},
method: 'POST',
body: JSON.stringify({})
});
期望浏览器保存并发送cookie。
答案 0 :(得分:1)
许多其他建议始终会说:设置凭据:“包含” 和服务器端Access-Control-Allow-Credentials值为true 。但是我检查了您的代码,并且响应都还可以。
那么cookie可能已过期?
还是您的浏览器禁用了第三方Cookie?
第三方Cookie
请注意,在CORS响应中设置的Cookie受正常的第三方Cookie政策约束。在上面的示例中,该页面是从foo.example加载的,但是第22行上的cookie是由bar.other发送的,因此如果用户将其浏览器配置为拒绝所有第三方cookie,则不会保存该页面。>