Google chrome localhost web app访问远程API时未设置Cookie

Google chrome localhost web app访问远程API时未设置Cookie,google-chrome,cookies,Google Chrome,Cookies,我在http://localhost:3000 此web应用程序访问远程API,即https://app.example.com/api 在API上执行登录时,服务器返回如下会话Cookie: Set-Cookie: JSESSIONID=ZmQ2Yzg4OWYtYzdiNi00Mzc1LTkzMzUtYzhiZjZmM2MzZjMy; Domain=app.example.com; Path=/api/; Secure; HttpOnly; SameSite=Lax 但是,在Chrome上,

我在
http://localhost:3000

此web应用程序访问远程API,即
https://app.example.com/api

在API上执行登录时,服务器返回如下会话Cookie:

Set-Cookie: JSESSIONID=ZmQ2Yzg4OWYtYzdiNi00Mzc1LTkzMzUtYzhiZjZmM2MzZjMy; Domain=app.example.com; Path=/api/; Secure; HttpOnly; SameSite=Lax
但是,在Chrome上,Set Cookie不会出现在响应头列表中。另外,如果我重新发送相同的请求,Chrome不会在请求头中包含Cookie

所以,我的理解是它忽略了Cookie。为什么?

关于CORS,我看不出有任何问题,请求由Chrome正确发送。以下是飞行前返回的CORS标头:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Methods: PATCH,GET,POST,PUT,DELETE
Access-Control-Allow-Origin: http://localhost:3000
Access-Control-Expose-Headers: ETag, X-XSRF-TOKEN
我尝试添加一个本地DNS条目
app.me
pointig到
127.0.0.1
,但仍然不起作用

我还尝试了Edge,我可以看到Set Cookie标题出现,但是Cookie似乎没有设置


编辑:

这是Axios代码:

const axios=require('axios');
constbackendurl=https://app.example.com/api';
const constructUrl=url=>`${backendUrl}${url}`;
常数axioconfig={
事实上,
};
导出默认值{
get:url=>axios.get(constructUrl(url),axioconfig),
post:(url,data)=>axios.post(constructUrl(url),data,axioconfig),
put:(url,data)=>axios.put(constructUrl(url),data,axioconfig),
delete:(url,data)=>axios.delete(constructUrl(url),data,axioconfig),
};
//在另一个文件中。。。
HttpService.post('/login',creds)
。然后((响应)=>{
const userInfo=response.data;
const token=response.headers['x-xsrf-token'];
setItem('user-info',JSON.stringify(userInfo));
setItem('user-xsrf-token',JSON.stringify(token));
window.location.replace('/');
})
.catch((错误)=>{
如果(err.response.status==401){
setLoginError('Bad cred');
}否则{
setLoginError('Fail to auth');
}
});

首先,出于某种原因,我无法使Chrome show Cookie与地址栏中提到的域以外的其他域关联。因此,在地址栏中,我有
http://localhost:3000
并且我无法看到与
app.example.com
相关的cookies。 此外,出于同样的原因,开发工具不会显示
设置Cookie
(响应)和
Cookie
(请求)。但这并不意味着cookie没有被接收和设置

但是,在我的例子中,由于存在
SameSite=Lax
,所以没有设置cookie


删除此cookie属性后,将设置cookie并将其包含在下一个请求中。

您使用什么将请求发送到API?Fetch?@NicoleWhite我正在使用AXIOS()您是否使用凭据设置了
:true
?@NicoleWhite是-设置为true。您是否介意编辑您的问题以包含您用于执行登录的AXIOS代码?