首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AJAX调用成功后将JSON数据存储在jQuery cookie中

在AJAX调用成功后将JSON数据存储在jQuery cookie中
EN

Stack Overflow用户
提问于 2015-02-04 07:49:13
回答 1查看 1.1K关注 0票数 0

我试图将通过AJAX检索的JSON数据存储在jQuery cookie中。我使用以下插件:https://github.com/carhartl/jquery-cookie来实现这一点。当我存储非JSON对象时,插件工作得很好。

我可以看出,当存储简单的字符串时,它工作得很好。但是,当我试图存储从AJAX调用中获得的JSON数据时,cookie没有保存。这是我的相关代码:

代码语言:javascript
复制
        $.ajax({
            dataType: "json",
            url: "http://www.example.com/sandbox/BF/context/messagesNew.php",
            success: function(data) {
            
                //This works
                $.cookie('Name', 'John');
                console.log($.cookie('Name'));
              
                //This does not work
                $.cookie("test-data", JSON.stringify(data));
                var myJSONCookie = JSON.parse($.cookie("test-data"));
                console.log(myJSONCookie); // Returns error in console: SyntaxError: JSON Parse error: Unexpected identifier "undefined"
            }
        });

我尝试过其他几段代码片段,但都没有正常工作。我甚至不认为test-data是作为cookie创建的,因为当我将整个$.cookie();记录到控制台时,会出现名为Name的cookie,但test-data不会出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-04 08:25:38

您要在cookie中添加的值对于cookie来说太大了。曲奇限制在4k左右。其中一部分用于存储管理,一部分是因为每个对服务器的请求都会发送所有的cookie。如果您存储了一个9MB的cookie,那么您将向该服务器发送额外的9MB和每个页面或ajax请求,这显然是一场灾难。

LocalStorage是另一个具有更大存储限制的选项,它仍然在每个域上进行分区,并且在每个请求中向服务器发送大型东西没有问题。

如果LocalStorage也不够大,那么您可以开始考虑只包含IndexedDB之类内容的现代浏览器,您可以阅读这里

你可能需要一种不同的设计方法。我们可能会为另一种方法提供帮助,但必须了解您要解决的总体问题,以及为什么您需要在本地存储9MB,并且在将来需要时不能直接从服务器上检索它?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28316115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档