如何使用JavaScript获取Cookie的路径

Kar*_*ups 5 javascript cookies

我设置的Cookie js函数

function setCookie(name, value, expires, path){
    cookieStr = name + "=" + escape(value) + "; ";

    if(expires){
        expires = setExpiration(expires);
        cookieStr += "expires=" + expires + "; ";
    }
    if(path){
        cookieStr += "path=" + path + "; ";
    }
    document.cookie = cookieStr;
}
Run Code Online (Sandbox Code Playgroud)

当我创建一个cookie时,

 setCookie('MyCookie','cookieName',3,'/Members')
Run Code Online (Sandbox Code Playgroud)

如何获取Cookie的路径?

Raj*_*gan 8

TL:博士; 您无法使用 javascript 读取基于路径的 cookie。

在 JavaScript 中,您只能使用内部对象来设置或获取 cookie document.cookies而这个对象的内容将是一串键值对,由非httpOnly cookie 名称和值组成,以a 分隔;。差不多就是这样。

您无法获得和 的其他属性的踪迹Path,因为它们只能被浏览器读取,而不会显示给 JavaScript。Domaincookies

另一方面,如果您使用任何形式的 AJAX,您可以尝试拦截和解析请求标头,xhr.getResponseHeader("Set-Cookie")并将值存储在localStoragesessionStorage根据您的需要。我仍然建议你这不是一个好主意。一些浏览器可能会将Set-Cookie标头视为 javascript 读取的禁止标头之一。但我认为该限制仅适用于httpOnlycookie。

  • 事情可能已经改变,现在有 [`browser.cookies.getAll()`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies/getAll) **确实**在可消化的对象中提供了 _`path`_ 和其他内容......但是,访问此 API(在兼容的浏览器中)确实需要设置 [`manifest.webmanifest`](https: //developer.mozilla.org/en-US/docs/Web/Manifest) 文件。而那些_支持_这种幻想的浏览器以不同的方式这样做,然后需要另一个依赖项(垫片)......`localStorage`和`sessionStorage`似乎更容易。 (2认同)