【发布时间】:2019-02-02 13:25:10
【问题描述】:
我无法获取此获取请求以正确发送 cookie(会话 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 的必要标头。
【问题讨论】:
-
您是否在控制台日志中看到任何 CORS 错误?网络选项卡中的所有内容看起来都不错,但您仍然可能会遇到错误。另外,Access-Control-Allow-Origin 标头是否应该是 https 而不是 http?
-
控制台日志中没有 CORS 错误。标头应该是 http,因为我目前没有在前端应用程序上使用 SSL,只是 REST 接口。
-
cookie是属于
http://localhost:3000还是https://#.#.#.#/? -
cookie 属于 https://#.#.#.#/ 它是从运行在该主机上的瓶服务器发送和生成的。
-
刚刚尝试使用非“安全”会话。id 仍然不起作用。
标签: javascript reactjs cookies fetch bottle