【问题标题】:Storing touppercase() value in cookie and retrieving it in jQuery在 cookie 中存储 touppercase() 值并在 jQuery 中检索它
【发布时间】:2013-04-18 19:08:10
【问题描述】:

我有一个邮政编码查找,它存储如下值(使用 jQuery.cookie 插件)

$.cookie('delpostcode', $('#deliveryPostcode').val().toUpperCase(),{path: '/'});

这家店GL53%200DW

然后我稍后尝试使用以下方法检索它:

$.cookie("delpostcode")

但这会返回[Object][object]

这两个值都在设置页面上正确设置,但我无法在我尝试抓取它们的页面上检索它们。如果放

$.cookie('delpostcode')

在 Chrome 的控制台中我得到URIError: URI malformed

编辑:

这个问题已经通过添加解决了

$.cookie.raw = true;

当我设置我的 cookie 时。任何想法为什么?

【问题讨论】:

  • 不,这只是意味着它是一个对象。使用 console.log() 将其记录到浏览器的控制台,然后您就可以看到它实际包含的内容。
  • 在 Chrome 中,我在 Resources > Cookies 下查看,可以看到正在设置 cookie。

标签: jquery cookies jquery-cookie


【解决方案1】:

打开浏览器的调试控制台并检查什么

$('#deliveryPostcode').val()

返回,它可能不是字符串。如果您尝试使用字符串,它会起作用:

$.cookie('delpostcode', "GL53%200DW".toUpperCase(),{path: '/'});
undefined
$.cookie("delpostcode")
"GL53%200DW"

【讨论】:

  • 我认为这是问题所在。如果我硬编码一个值,它就可以工作(因为它是一个字符串)。会不会是我设置的type 值而不是实际值?
  • 你从 alert("cookie:"+$.cookie("delpostcode")) 得到什么和 alert("input:"+$('#deliveryPostcode').val()); ?
  • 更新问题。我在尝试读取 cookie 的页面上收到 URIError: URI malformed error
【解决方案2】:

这里有一个jsfiddle 的工作示例,我看不出问题出在哪里。这是我使用的代码:

$(function () {
    $("#setCookie").on("click", function () {
            alert($('#deliveryPostcode').val().toUpperCase());
        $.cookie('delpostcode', $('#deliveryPostcode').val().toUpperCase(), {
            path: '/'
        });
    });
    $("#getCookie").on("click", function () {
        alert($.cookie('delpostcode'));
    });
});

【讨论】:

  • 确实,这确实有效。是否会受到 ajax 调用的影响?
  • 每个 cookie 都由其域引用,您是否对域有任何问题(即您是否在设置 cookie(例如localhost)和获取存储的 cookie(例如myTestDomain.com)之间更改域) ?
  • 这是在 WAMP 堆栈上运行的,我将所有内容都设置在 /。该网站位于子文件夹 /bumblebeez
  • 我指的不是路径 (/bumblebeez),而是域,这就是 / 之前的内容。然而,这只是一个假设。
猜你喜欢
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
相关资源
最近更新 更多