我遇到了无法在浏览器中设置 cookie 的问题,因为客户端托管在 Netlify 上,服务器托管在 Heroku 上。它在本地主机上运行良好,所以看起来它现在与跨域有关。
阅读了多篇关于此的文章后,似乎这可能与 cors 或我如何设置 cookie 有关。
我在某处读到它可能有助于添加secure: true和sameSite: "none"设置 cookie,所以我添加了它们,但没有帮助。我也尝试过domain在设置cookie时添加它,但不幸的是它也没有帮助。
我正在使用 Chrome,并已将设置从阻止第三方 cookie 更改为允许所有 cookie,因为我读到这有时可能是一个问题。然而它也没有产生任何新的结果。
我还读到,无论出于何种原因,它可能需要代理,或者可以通过在 Heroku 上托管客户端和服务器来解决这个问题。如果可能的话,我宁愿不做任何这些事情,但欢迎任何想法。
服务器端使用 Node js (express) 托管在 Heroku 上:
const express = require("express");
const app = express();
require("dotenv").config();
const cors = require("cors");
const mysql = require("mysql");
const jwt = require("jsonwebtoken");
const cookieParser = require("cookie-parser");
// port for heroku if needed
const PORT = 3001;
// app objects instantiated on creation of …Run Code Online (Sandbox Code Playgroud)