Javascript 饼干不是';获取API请求时未设置';s响应已设置Cookie标头,即使凭据参数设置正确
我使用fetch从后端请求一个JSON路由,该路由还通过Set Cookie头设置了两个Cookie。我验证了这些cookie是通过Firefox的开发者工具和HTTPie发送的。然而,这些cookie并没有存储在Firefox的任何地方。我正在设置一个仅限HTTP的cookie和另一个具有默认设置的cookie,但这两个cookie都不会粘住(根据JS控制台,默认设置cookie不会显示在document.cookie中,并且两个cookie都不会随后续HTTP请求一起发送)。当我试图研究导致此问题的原因时,我发现需要一个特定的设置来获取Javascript 饼干不是';获取API请求时未设置';s响应已设置Cookie标头,即使凭据参数设置正确,javascript,cookies,rust,fetch,actix-web,Javascript,Cookies,Rust,Fetch,Actix Web,我使用fetch从后端请求一个JSON路由,该路由还通过Set Cookie头设置了两个Cookie。我验证了这些cookie是通过Firefox的开发者工具和HTTPie发送的。然而,这些cookie并没有存储在Firefox的任何地方。我正在设置一个仅限HTTP的cookie和另一个具有默认设置的cookie,但这两个cookie都不会粘住(根据JS控制台,默认设置cookie不会显示在document.cookie中,并且两个cookie都不会随后续HTTP请求一起发送)。当我试图研究导致
fetch
以接受cookies,但我尝试了凭据:“include'
和凭据:“同源”
,两者都不起作用。虽然其他人也有过这个问题,但我找不到一个案例说明这两种方法都不能解决这个问题。这是怎么回事
我的请求是这样的:
let response=wait fetch(“/users/login”{
方法:“post”,
标题:{
“内容类型”:“应用程序/json”
},
凭据:“include”,//我还尝试了凭据:“同源”
正文:JSON.stringify({
电邮:电邮,,
密码:密码
})
});
这是在后端设置cookie的方式(Rust+Actix):
let mut response=HttpResponse::Ok()
.json(LoginResultDto){
你成功了吗,
错误消息:“”,
})
.等待?;
添加_cookie(&cookie::new(“用户名”、&claims.username))//此cookie仅用于前端轻松显示用户名
让mut-token\u-cookie=cookie::new(“token”、&jwt\u-token)//用于后续请求的实际身份验证
令牌\u cookie.set\u http\u only(true);
响应。添加_cookie(&token_cookie)?;
Ok(回复)
我在Linux上使用Firefox81.0.2