在URL中传递JS对象

时间:2012-09-14 19:52:11

标签: javascript

我已经在SO中搜索过这个问题了。但是这些答案都没有对我有用,所以我再次发布这篇文章,希望能找到适合我的答案。

有没有办法通过URL传递JS / JSON对象?假设我有一个像这样的JS对象:

var jObj = {"color":"red","shape":"square"}

现在假设我想将它传递给如下的URL:

window.open("/process/jObj"); //here I want the var defined above to be passed

我尝试了各种选项,例如JSON.stringfyencodeURIComponentescape ..但我无法传递它。知道如何在纯JS中实现这一点吗?

我想传递它,以便在下一页(process.php)中,我可以获取jObj的值并将其用于进一步处理。基本上我正在寻找一个选项,我可以将对象传递给?color=red&shape=square的效果,而不必压扁和重新格式化对象

1 个答案:

答案 0 :(得分:2)

这是你可以做的一件事

var jObj = {"color":"red","shape":"square"}
var urlParam = []

for (var i in jObj){
   urlParam.push(encodeURI(i) + "=" + encodeURI(jObj[i]));
}

window.open("/process/?" + urlParam.join("&"));

这应该产生你的结果