有效的查询参数 - 在URL中传递数据

3
每当我需要在URL中允许查询参数时,我一直使用http://example.com?something=value&else=value。然而,最近我需要将一个JSON对象转换成URL中的查询参数,看起来像这样key=value&key2=value2以便在URL中传递,并且我的同事问我为什么要使用这种技术将对象转换为URL中的参数,而不是直接将相同的JSON对象字符串化并插入URL中,如下所示:http://example.com?data='{"key":"value", "key2:"value2"}' 虽然我的同事的建议对我来说看起来很丑陋,但我确实无法给他一个比大多数网站使用http://example.com?something=value更好的答案。
如果我使用查询参数技术?key=value,我可以从JavaScript内置的特性URLSearchParams中受益,以使用传递在URL中的数据。
使用我同事的建议,我只需将字符串转换回对象,并查询具有对象特性的URL。
每种方法的缺点是什么,为什么应该使用其中之一?

很可能主要基于个人观点 许多好的问题会根据专家经验产生一定程度的观点,但是对于这个问题的答案往往几乎完全基于观点,而不是事实、参考资料或特定专业知识。 - mplungjan
这里没有什么有价值的内容?https://www.google.nl/search?q=url+parameters+json+stringify+instead+of+url+site:stackoverflow.com - mplungjan
那么这个答案将基于个人喜好和观点,而不是一种正确的方法对另一种方法具有优势? - Matthew Barbara
1个回答

0

当您传递敏感数据时,可以将数据编码为base64并在另一端解码数据,这样您的数据将更加安全。

e.g

let inBase64=btoa(JSON.stringify({name:'tom'}))
let url=`http://example.com?data=${inBase64}`

在另一端重新转换回来

let jsonData=JSON.parse(atob(data))

对于敏感数据来说,这不是一个好的做法,而且还有URL limit


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接