cookies未发送到客户端(静态Web应用程序)-Azure隔离功能

发布于 2025-02-13 23:57:37 字数 926 浏览 1 评论 0原文

在随附的功能API(作为静态Web应用程序的一部分)中发送cookie作为对请求的响应时,未发送cookie。这仅发生在已部署的静态Web应用程序中 - 此问题在API函数的本地测试中不存在。

注意:我允许静态网站URL到Azure函数网站(CORS)

我的代码通过函数添加cookie:

{
HttpCookie cookie = new HttpCookie("serialno", "121345678");                    
cookie.Expires = DateTime.UtcNow.AddMonths(6);
cookie.SameSite = SameSite.Strict;
cookie.Path = "/";
cookie.HttpOnly = true;
HttpResponseData response = JsonResponseObject(req, loginResponse);
response.Cookies.Append(cookie);
return response;
}

internal static HttpResponseData JsonResponseObject(HttpRequestData req, object data)
        {
            var response = req.CreateResponse(System.Net.HttpStatusCode.OK);
            response.Headers.Add("Content-Type", "application/json; charset=utf-8");
            response.Body = ObjectToStream(data);
            return response;

        }

应该设置cookie,就像在本地测试API功能时它的工作原理一样。

When sending cookies as a response to a request in an included functions API (as part of a static web app), the cookies are not sent. This only occurs in a deployed static web app - this issue is not present in local testing of the API functions.

Notes: I have allowed static web site url to Azure functions website (CORS)

my code to add cookie through function:

{
HttpCookie cookie = new HttpCookie("serialno", "121345678");                    
cookie.Expires = DateTime.UtcNow.AddMonths(6);
cookie.SameSite = SameSite.Strict;
cookie.Path = "/";
cookie.HttpOnly = true;
HttpResponseData response = JsonResponseObject(req, loginResponse);
response.Cookies.Append(cookie);
return response;
}

internal static HttpResponseData JsonResponseObject(HttpRequestData req, object data)
        {
            var response = req.CreateResponse(System.Net.HttpStatusCode.OK);
            response.Headers.Add("Content-Type", "application/json; charset=utf-8");
            response.Body = ObjectToStream(data);
            return response;

        }

The cookie should be set, just like how it works when testing API functions locally.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不回头走下去 2025-02-20 23:57:37

响应对象不应作为代码的一部分创建,而是该函数的参数之一:

module.exports = async function (context, req) {
...
    context.res = {
        // status: 200, /* Defaults to 200 */
        body: ...
    };
}

The response object shouldn't be created as a part of your code, it is one of the function's arguments:

module.exports = async function (context, req) {
...
    context.res = {
        // status: 200, /* Defaults to 200 */
        body: ...
    };
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文