Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将javascript函数返回的cookie值传递给JSON参数字段?_Javascript - Fatal编程技术网

如何将javascript函数返回的cookie值传递给JSON参数字段?

如何将javascript函数返回的cookie值传递给JSON参数字段?,javascript,Javascript,我有这个剑道对象,我关心它的这部分配置: data: { awardTitleId: e.data.AwardTitleId, personId: X, //needs to be a variable nameId: Y //needs to be a variable } 我得到personId和nameId的值并将它们存储到cookies中 function createCookie(name, value, day

我有这个剑道对象,我关心它的这部分配置:

data: {
          awardTitleId: e.data.AwardTitleId,
          personId: X, //needs to be a variable
          nameId: Y //needs to be a variable
      }
我得到personId和nameId的值并将它们存储到cookies中

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}
我不能这样做:

data: {
          awardTitleId: e.data.AwardTitleId,
          personId: readCookie("personId"),
          nameId: readCookie("nameId")
      }
所以我的问题是,如何在代码中使用这些java脚本函数返回的值?它们必须是“全局变量”,以便我可以在网页的其他部分/事件中使用它

我试着在我的页面顶部声明这些变量,在所有函数之外,但是我一直得到ID的0

顺便说一句,cookie函数正在工作

编辑-

函数正在返回一个值:


看起来您正在使用jQuery,所以如果您有一个ready函数,您可以像这样将这些值设置到数据对象中

var data: {
      awardTitleId: e.data.AwardTitleId, //wherever you get this from
      personId: null,
      nameId: null
  }

$(function(){
    data.personId = readCookie("personId");
    data.nameId = readCookie("nameId");
});
我不确定您的数据对象确切位于何处,希望不是在全局范围内,但您在前面提到需要全局范围内的数据对象,所以我就把它放在这里了


通过在页面的ready函数中分配
personId
nameId
,您将在页面的整个生命周期中拥有它们,而不需要不断从cookie中获取它们。

为什么不在一些init上设置它们,比如
data.personId=readCookie(“personId”)
您能更具体一点吗?也许是一个例子?好吧,我可以通过在所有函数之外声明var数据来实现这一点。现在唯一的问题是cookie值继续使用以前的值(而不是im当前设置的值)。我以为橡皮擦cookie函数会处理它?所以你正在擦除cookie,设置值,然后尝试从值中读取,而没有得到你设置的值?是的。擦除、设置并从上一次运行中获取值您是否尝试签入开发工具以查看每次操作后cookie发生了什么变化?我现在就去看,我做了一个测试,它看起来像是在做我期望的事情
var data: {
      awardTitleId: e.data.AwardTitleId, //wherever you get this from
      personId: null,
      nameId: null
  }

$(function(){
    data.personId = readCookie("personId");
    data.nameId = readCookie("nameId");
});