我试图获取一个URL的哈希值,通过一个函数发送它,将该值变成一个对象,但最终将该值发送到JSON。我有以下设置:

function content(cur){
    var mycur = $H(cur);
    var pars = "p="+mycur.toJSON();
    new Ajax.Updater('my_box', 'test.php', {
      parameters: pars
    });
}

function update(){
    if(window.location.hash.length > 0){
        content(window.location.hash.substr(1)); // Everything after the '#'
    }
}

var curHashVal = window.location.hash;
window.onload = function(){
    setInterval(function(){
        if(curHashVal != window.location.hash){
            update();
            curHashVal = window.location.hash;
        }
        },1);
    }


但是由于某种原因,我似乎无法获得正确的JSON输出。它要么作为一个非常大的对象(1:“ {”,2:“ k”)返回,要么根本不返回。我怀疑这是不可能完成的,但是我已经用尽了所有我能想到的方法。

我尝试过的其他方法是“ {” + cur +“}”以及cur.toObject(),但是似乎没有人能完成工作。

谢谢您的帮助!

编辑:作为最终结果,我希望将URL(例如product:3,confirmed:1)返回为{"product":3,"confirmed":1}

最佳答案

toJSON()的典型实现需要数组或对象作为最顶层的元素。这样的Sonsomethig可能会起作用:

var pars = {p:myCur};
pars = pars.toJSON();

关于javascript - 使用Javascript变量并发送到JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2535226/

10-16 15:30