我无法获取此提取请求以正确发送Cookie(会话ID,该会话ID已成功存储在Cookie中的Chrome浏览器应用程序标签中)。 Cookie是创建的python瓶,名为beaker.session.id cookie,被标记为安全。
我将我的瓶子服务器配置为处理CORS请求和cookie,并返回以下标头:
Access-Control-Allow-Credentials →true
Access-Control-Allow-Headers →Origin, Accept, Content-Type, X-Requested-With, X-CSRF-Token, Authorization
Access-Control-Allow-Methods →PUT, GET, POST, DELETE, OPTIONS
Access-Control-Allow-Origin →http://localhost:3000
我的JavaScript代码是:
fetch("https://#.#.#.#/session-status",
{
credentials: "include",
method: "post",
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": id
}),
}).then(res => {
return res.json()
什么可能导致此问题?预检OPTIONS请求成功后获得200 OK,但POST请求未发送包含会话ID的必要标头。
答案 0 :(得分:0)
更新:
最终发现问题是cookie的SameSite:“松散”部分。默认情况下,Bottle启用了SameSite:'Lax',但是您需要手动将其设置为None才能不发送属性。SameSite:“ Lax”不允许您根据此请求从另一个域发送不安全的请求(例如POST) RFC在第4.3节中。