【发布时间】:2021-03-22 15:16:49
【问题描述】:
使用 javascript,我试图弄清楚 如何将包含多个数组的 JSON 序列化数组作为参数化 URL 传递。
我已经阅读了多篇关于 StackOverflow 的相关文章——但它们只涉及非常基本的奇异数组。[1]
[1]How to pass an array as a URL parameter?
以下是围绕我的特定用例的上下文,其中涉及位于两个不同域上的两个独立网站(A 和 B):
网站 A:
本网站具有使用 javascript、AJAX、jQuery 的购物车功能,并利用 localStorage 来存储添加到购物车中的产品。
一旦用户准备好结账——我们会将他们重定向到网站 B 以完成结账过程。
购物车数据示例:
下面的序列化 JSON 数据显示了两个不同产品的数据。每个产品都有 6 个与之关联的唯一键。
[
{
"cid":"68",
"d":"12/26/2020",
"tti":"75687708",
"tt":"0800",
"tn":"1",
"q":"4"
},
{
"cid":"67",
"d":"01/09/2021",
"tti":"75688769",
"tt":"0909",
"tn":"1",
"q":"2"
}
]
最终结果 URL 可能的样子:
网站 B:
本网站将使用 PHP 解析 URL,以获取每个产品的详细信息以进一步处理(即:产品查找和验证等)。
验证产品后,结帐页面将被填充,用户可以完成付款和结帐。
【问题讨论】:
-
A 和 B 是否在同一个域中?
-
@Michel 不,他们在不同的域中。
-
如果我们接受 ~2k 限制as a given,那么您可以简单地用 6 个项目 as JSON 对上述结构进行编码,您仍然会得到只有大约 500 个字符。添加正确的 URL 编码,它会增加一倍。只是
http_build_query,传递这个“标准”查询字符串,在这个例子中大约有500到600个字符,所以我可能不会费心在这里发明自己的格式。
标签: javascript php arrays json