【问题标题】:How to pass an array containing multiple arrays as a parameterized URL with JavaScript如何使用 JavaScript 将包含多个数组的数组作为参数化 URL 传递
【发布时间】: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 可能的样子:

https://www.website-b.com/checkout?cid=68,67&d=12/26/2020,01/09/2021&tti=75687708,75688769&tt=0800,0909&tn=1,1&q=4,2

网站 B:

本网站将使用 PHP 解析 URL,以获取每个产品的详细信息以进一步处理(即:产品查找和验证等)。

验证产品后,结帐页面将被填充,用户可以完成付款和结帐。

【问题讨论】:

  • A 和 B 是否在同一个域中?
  • @Michel 不,他们在不同的域中。
  • 如果我们接受 ~2k 限制as a given,那么您可以简单地用 6 个项目 as JSON 对上述结构进行编码,您仍然会得到只有大约 500 个字符。添加正确的 URL 编码,它会增加一倍。只是http_build_query,传递这个“标准”查询字符串,在这个例子中大约有500到600个字符,所以我可能不会费心在这里发明自己的格式。

标签: javascript php arrays json


【解决方案1】:
  1. URL的概念本身没有限制,但浏览器的URL是有限制的。

  2. 是的,你可以传递一个数组。

但是为什么要在 URL 参数中传递数据呢?我建议您使用 POST 方法并将您的数据以 json 格式发送到正文中

【讨论】:

  • 如何同时实现 POST 和重定向?
猜你喜欢
  • 1970-01-01
  • 2017-03-22
  • 2010-12-18
  • 2022-08-18
  • 2011-02-12
  • 2015-02-19
  • 2012-10-17
  • 1970-01-01
相关资源
最近更新 更多