当前位置: 首页 > 面试题库 >

从AJAX POST响应中获取并存储Cookie(来自Set-Cookie)

慕凌
2023-03-14
问题内容

我有一个简单的jQuery AJAX POST代码:

$.ajax({
    type: "POST",
    url: AppConstants.URLs.PROXY,
    data: message,
    xhrFields: {
        withCredentials: true
    },
    success: function(data, status, xhr) {
        console.log("Cookie: " + xhr.getResponseHeader("Set-Cookie"));
    }
});

我希望获取cookie并使用cookies-js保存。

但是根据http://www.w3.org/TR/XMLHttpRequest/#the-
getallresponseheaders%28%29-method

  1. 将所有响应标头( 不包括与Set-Cookie或Set-Cookie2不区分大小写的标头) 作为单个字符串返回,每个标头行由U +
    000D CR U + 000A LF对分隔,状态行除外,每个标头名称和标头值之间用U + 003A COLON U + 0020 SPACE对分隔。

使用Chrome中的网络工具,“响应”标题中会显示“ Set-Cookie”。我还使用验证了“ Set-Cookie”标题的出现curl

要在我的前端应用程序中保存Cookie,我该怎么做?另外,我的应用仅在 https 上运行。

我很乐意应要求提供更多详细信息。


问题答案:

您无法在JS中获取Cookie数据。该API不允许您使用。

要在我的前端应用程序中保存Cookie,我该怎么做?

只需Set-Cookie在服务器端代码的响应中设置标头。浏览器应自动将其保存。

作为开发人员,您可以使用“开发人员工具”检查Cookie的价值。

并且相同的cookie将在后续请求中发送到相同的域,直到cookie过期。



 类似资料:
  • 问题内容: 我在同一个域上有一个请求,我想读取cookie。它不断返回。 有任何想法吗?我为此使用Chrome。 问题答案: 您正在寻找的响应标头: 它不适用于HTTPOnly cookie。 更新资料 根据XMLHttpRequest级别1和XMLHttpRequest级别2,此特定的响应标头属于您可以使用所获得的“禁止”响应标头,因此,该方法可以起作用的唯一原因基本上是一个“顽皮的”浏览器。

  • 我有一个简单的endpoint线模拟存根。调用此存根的库希望响应中存在一个cookie。在wiremock配置的响应中是否有简单的方法提供cookie 存根endpoint的示例代码: 这可行吗?我正在使用下面的wiremock版本

  • 即使响应包含ajax请求的“设置cookie”头,cookie也不会存储在浏览器上。 请求代码: 收到的响应标题: 访问控制允许凭据:true 访问控制允许标头:X-request-With、accept、内容类型、Cookie 访问控制允许方法:POST、GET、PUT、OPTIONS、DELETE 访问控制允许来源:http://myapp2.com:7011 访问控制最大年龄:3600 内容

  • 我正在尝试使用 GraphQL 使用 JWT 对用户进行身份验证。登录用户后,我会收到令牌作为 JSON 响应和存储刷新令牌的 httponly cookie。(服务器端使用的是销售核心) 从Saleor的文档和其他一些博客帖子中,我假设这个响应cookie现在应该存储在浏览器中,每当我需要刷新令牌时,cookie refreshToken将用于验证我的请求。然而,当我在开发工具中将选项卡切换到“

  • 问题内容: 我有一个带有Passport模块的Node.js Express REST API,用于身份验证。登录方法(GET)在标题中返回cookie。当我从Chrome调用它时,它工作正常,我的Cookie已在浏览器中设置。 但是,如果我通过Angularjs中的$ http调用它,则不会设置cookie。 如您在上面所看到的,Set-Cookie位于http服务响应的标题中。 也许HttpO

  • 所述Set-CookieHTTP 响应报头被用于从服务器向用户代理发送 cookie。 有关更多信息,请参阅 HTTP cookie 指南。 Header type Response header Forbidden header name no 句法 Set-Cookie: <cookie-name>=<cookie-value> Set-Cookie: <cookie-name>=<cooki