无法在 Firefox 中设置 Cookie
Cookies can't be set in Firefox
这是一个 React 应用程序。在身份验证中,我将 cookie(第一方)作为要进行身份验证的凭据之一,这种情况适用于 Chrome,但不适用于 Firefox。 Chrome 已成功获取并存储 cookie,但 Firefox 未获取该 cookie。
我正在使用 js-cookie 来处理 Cookies 管理
const isLogined = () => {
var xhr = new XMLHttpRequest();
const data = { Name, Password };
enableLoading();
setTimeout(() => {
Http.post(`thisistheapiurl`, data, (xhr.withCredentials = true))
.then(res => {
disableLoading();
if (res.status === 200) {
if (res.data.result !== "failed") {
var expired = new Date(new Date().getTime() + 3600 * 1000);
Cookies.set("header", `${res.headers["x-header"]}`, {
expires: expired
});
Cookies.set("signature", `${res.headers["x-signature"]}`, {
expires: expired
});
Cookies.set("refreshToken", `${res.headers["x-refreshtoken"]}`, {
expires: expired
});
// alert("succes");
window.location.href = "/dashboard";
} else {
setStatus(
intl.formatMessage({
id: "AUTH.VALIDATION.INVALID_LOGIN"
})
);
}
}
})
.catch(err => {
console.log(err);
disableLoading();
setStatus(
intl.formatMessage({
id: "AUTH.VALIDATION.INVALID_LOGIN"
})
);
});
}, 1000);
};
只需在 onSubmit 表单的 isLogined 函数之前添加 event.preventDefault() 即可。如果您已经在使用按钮类型="submit"
,则您不需要在按钮上调用 isLogined 函数
这是一个 React 应用程序。在身份验证中,我将 cookie(第一方)作为要进行身份验证的凭据之一,这种情况适用于 Chrome,但不适用于 Firefox。 Chrome 已成功获取并存储 cookie,但 Firefox 未获取该 cookie。
我正在使用 js-cookie 来处理 Cookies 管理
const isLogined = () => {
var xhr = new XMLHttpRequest();
const data = { Name, Password };
enableLoading();
setTimeout(() => {
Http.post(`thisistheapiurl`, data, (xhr.withCredentials = true))
.then(res => {
disableLoading();
if (res.status === 200) {
if (res.data.result !== "failed") {
var expired = new Date(new Date().getTime() + 3600 * 1000);
Cookies.set("header", `${res.headers["x-header"]}`, {
expires: expired
});
Cookies.set("signature", `${res.headers["x-signature"]}`, {
expires: expired
});
Cookies.set("refreshToken", `${res.headers["x-refreshtoken"]}`, {
expires: expired
});
// alert("succes");
window.location.href = "/dashboard";
} else {
setStatus(
intl.formatMessage({
id: "AUTH.VALIDATION.INVALID_LOGIN"
})
);
}
}
})
.catch(err => {
console.log(err);
disableLoading();
setStatus(
intl.formatMessage({
id: "AUTH.VALIDATION.INVALID_LOGIN"
})
);
});
}, 1000);
};
只需在 onSubmit 表单的 isLogined 函数之前添加 event.preventDefault() 即可。如果您已经在使用按钮类型="submit"
,则您不需要在按钮上调用 isLogined 函数