【问题标题】:Valid query parameters - passing data in URL有效的查询参数 - 在 URL 中传递数据
【发布时间】:2019-04-25 21:55:28
【问题描述】:

每次我需要在 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。

每种方法的缺点是什么?为什么我应该使用另一种方法?

【问题讨论】:

  • 可能主要基于意见 许多好的问题会根据专家经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料、或特定的专业知识。
  • 这里没有价值吗? google.nl/…
  • 所以这个答案将基于一个人的偏好和意见,而不是一种比另一种更有利的正确方法?

标签: javascript url query-parameters


【解决方案1】:

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

例如

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

在另一端重新转换回来

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

对于敏感数据,这不是一个好方法,也是 url limit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多