【发布时间】:2021-01-04 09:22:56
【问题描述】:
我正在尝试通过 html 页面进行发布调用。在第二个应用程序中,我正在尝试访问一个名为 cookie_test 的 cookie(可以手动设置或通过浏览器中的代码设置)。
在应用程序选项卡(存储 --> cookie)下,我可以看到 cookie,但是当我尝试从第二个应用程序访问它时,不知何故我在控制台日志中未定义(参考第二个代码)。
应用程序一(test.html 是其中唯一的文件,我正在尝试进行后期调用)
<form action="http://localhost:3000/page-two" method="POST">
<input type="submit" value="Go to P2">
</form>
应用二(NodeJS/Express: index.js)
var express = require('express');
var router = express.Router();
router.post('/', function (req, res, next) {
console.log("COOKIE-TEST::::::", req.cookies.cookie_test)
res.render("page_two", { cookie_data: req.cookies.cookie_test });
});
module.exports = router;
注意:在节点应用程序中,cookie 可以访问并按预期工作。重定向期间似乎出现问题。
【问题讨论】:
-
查看 devtools 的“网络”选项卡会很有帮助。它显示在每个请求中发送并在响应中返回的 cookie。还有一个名为“编辑此 Cookie”的 Chrome 网络扩展程序,可以很好地查看浏览器中的 cookie。
-
问题:应用程序二来自
http://localhost:3000。应用程序一从哪里提供服务? -
@O.Jones,应用程序一现在是一个简单的 HTML 页面。我注意到的一件事是网络选项卡下的请求标头中缺少 Cookie 标头。我担心的是,每当用户来到 App. 2、代码应该可以访问现有的cookies。
-
我再问一次。应用程序一从哪里提供?您可能会遇到跨域 cookie 限制。
-
@O.Jones,应用程序。一个不是从任何地方提供的。我只是在浏览器上打开 HTML 文件(上面的代码)。