我正在通过站点https://a.com进行身份验证。身份验证后,我将访问http://b.com。当我从b.com向a.com发出获取请求时,a.com会为我需要发送的会话设置cookie。
您能告诉我如何获取Cookie并将其传递给我的请求。
我尝试使用“ withCredentials”发送请求:是的, 还尝试将axios-cookiejar-support与hard-cookie一起使用。但似乎不起作用。
.get(a.com/path-requiring-cookie, {
withCredentials: true,
headers: {
'Content-Type': 'application/json',
'access-control-allow-credentials': true,
},
})
.then(res => {
console.log(res.data);
});```
This is the code that I have to send the request.
But this doesn't seem to send the cookie with the request. Can someone please clarify.
答案 0 :(得分:1)
为什么不使用javascript函数来帮助使用基于以下名称的Cookie来获取Cookie
function GetCookie(cName) {
const name = `${cName}=`;
const decodedCookie = decodeURIComponent(document.cookie);
const ca = decodedCookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1);
}
if (c.indexOf(name) === 0) {
return c.substring(name.length, c.length);
}
}
return '';
};
console.log(GetCookie("SID"))
答案 1 :(得分:0)
您要解决的问题是从/向不同域读取/发送Cookie。
如先前链接的问题所述,一种解决方案是在http://b.com
上设置一些标头
Access-Control-Allow-Origin: http://b.com
Access-Control-Allow-Credentials: true
您在域为http://b.com
的服务器上执行此操作
遵循这些原则可以为您解决问题。