"Cookies not defined" 在独立的 js-cookie javascript 库中?

"Cookies not defined" in standalone js-cookie javascript lib?

我不是javascript大师,但尝试使用js-cookie。 我包含了脚本:https://github.com/js-cookie/js-cookie: I downloaded it (LINK),并将其放在服务器上我自己的js文件中。 然后我将它包含在一个测试文件中并读取了一些 cookie,但它一直在浏览器控制台中向我显示错误 "Cookies is not defined"。我究竟做错了什么 :( ? 代码:

<html><head>
<script type="javascript" src="https://server/cookies.js"></script>
<script>
console.log("ALL COOKIES: " + Cookies.get());
</script></head>
<body></body>

我没有使用过该库,但快速查看源代码表明它导出 Cookies 时使用大写 C.

    if (!registeredInModuleLoader) {
        var OldCookies = window.Cookies;
        var api = window.Cookies = factory();
        api.noConflict = function () {
            window.Cookies = OldCookies;
            return api;
        };
    }

所以尝试使用正确的大小写。

 console.log("ALL COOKIES: " + window.Cookies.get());

此外,window 上的所有内容都是全局的。所以你可以把代码简化成这样。

 console.log("ALL COOKIES: " + Cookies.get());

下次,在浏览器的 JavaScript 控制台中。只需键入 window 并回车即可查看哪些变量是全局变量。您也可以直接在控制台中调用它,看看会发生什么 Cookies 应该会打印出一个 JavaScript 对象,其中描述了它具有的功能。

如果它是 undefined,则它未加载或不是全局的。

更新:

浏览器未加载 JavaScript 库,因为 mime 类型错误。您必须像这里一样使用 application/javascript

      <script type="application/javascript" src="https://server/cookies.js"></script>

快速修复:只需在调用前使用 window.

window.Cookies.get()

您在不同的 routes/pages

上使用了错误版本的 cookie.js

使用最新的

<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

如果不行,试试

<script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script>

受 ucMedia 回答的启发,您可以在脚本的开头添加以下行来修复任何问题。

var Cookies = window.Cookies;