【发布时间】:2021-11-15 20:05:03
【问题描述】:
我正在尝试在节点请求中设置 cookie。我尝试过使用像js-cookie、cookie-js、cookie 和cookie-manager 这样的包,但没有一个工作。
我尝试的方式非常简单,每当我的端点被调用时,即https://develop.api/sess/init,我使用以下代码在端点的最开始设置cookie
import * as Cookies from 'js-cookie';
export const init = async (event: APIGatewayEvent, context: Context) => {
...
Cookies.set('hello', 'hello');
...
}
由于我的端点有一个 auth 标头,由于缺少权限,我无法直接将其调用到浏览器 URL 中,因此我尝试使用 postman 生成 fetch 函数并将其粘贴到浏览器的控制台中。函数如下
var myHeaders = new Headers();
myHeaders.append("Referer", "accepted.referer.com");
myHeaders.append("key", "somekey");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://develop.api/sess/init", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
调用后,我的请求成功返回了预期的响应,但它从未在网络部分显示Set-Cookie 标头,也不会在Application 部分显示我的cookie。
我不得不提一下,我在 Postman 中拨打电话时也尝试过寻找 cookie,但它也从来没有设置过。
另外,我尝试在 localhost 中启动应用程序,并且响应成功,但我的 cookie 仍未设置。
关于代码中显示的包,我说我已经尝试过不同的包及其实现,所以我认为损坏的包不是问题。
我开始认为我对 cookie 的工作方式有一个错误的想法,或者我完全阻止了在我的代码中发送 cookie。
环境
如果有任何帮助,我的终端节点将托管在 AWS Lambda 应用程序中。 我知道这应该是微不足道的,但现在正在与它战斗一天。
【问题讨论】:
标签: node.js typescript cookies aws-lambda