【发布时间】:2015-06-22 03:10:17
【问题描述】:
我有两个独立的服务,一个React 单页应用程序和一个express API,我正在尝试使用新的fetch 功能从SPA 通信到API。由于这两个服务位于不同的域中,我在 express 应用程序中使用了一个 CORS 中间件,以便从 SPA 向 API 发出请求。我正在尝试让任何 fetch 请求也包含 cookie,这样我就可以在我的 express 应用程序中验证 cookie,例如
在客户端:
fetch('http://localhost:8000/hello', {
credentials: 'include',
mode: 'cors'
}).then(/* ... */)
在服务器端:
var app = express();
app.use(cors({ credentials: true });
app.use(cookieParser());
app.get('/hello', function (req, res) {
// Try and find the cookies sent with the request
console.log(req.cookies);
res.status(200).json({ message: 'cookies received!' });
});
但是,无论我尝试什么,我仍然无法访问 request 对象上的任何 cookie,即使我可以通过使用 document.cookies 访问它们。
cookie 示例:
name: token
value: TOKEN_VALUE
domain: localhost
path: /
http: false
secure: false
有人对如何解决这个问题有建议吗?任何帮助将不胜感激!
【问题讨论】:
-
credentials: 'include之后没有结束引号,这只是一个错字吗?另外,你有 JSFiddle 或 Pnkr 吗? -
是的,对不起!只是一个错字。遗憾的是没有,因为它涉及服务器端组件。
-
你能分享你的客户端代码吗?我可以创建自己的服务器。
-
有问题的客户端代码反映了我在问题中发布的获取请求。请求正在完成,我能够从我的服务器接收响应,但没有 cookie 被传递到服务器。
标签: javascript cookies express