javascript 如何正确处理包含多个查询参数的url的查询参数?

imzjd6km  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(396)

我正在使用一些旧的nest.js代码库,我们有/login端点。
此终结点正在等待查询参数redirect_url
redirect_url也可以像http://localhost:3000/api/schemas/generate?appId=application&event=eventName&registry=registry一样包含多个查询参数。
最后,我们有这样的东西:
http://localhost:3000/api/login?redirect_url=http://localhost:3000/api/schemas/generate?appId=application&event=eventName&registry=registry
因为它不是编码的,所以@Query()对象是:

{
  "redirect_url": "http://localhost:3000/api/schemas/generate?appId=application",
  "event": "eventName",
  "registry": "registry"
}

在nest.js中实现这一点并且不丢失查询参数的最佳方法是什么?

{
  "redirect_url": "http://localhost:3000/api/schemas/generate?appId=application&event=eventName&registry=registry"
}
bvuwiixz

bvuwiixz1#

如果你想先发送redirect_url和查询参数,你必须使用encodeURIComponent对其进行编码,并使用decodeURIComponent在嵌套中对其进行解码。请执行以下操作:

const redirect_url = "http://localhost:3000/api/schemas/generate?appId=application";
const encoded_url = encodeURIComponent(redirect_url);
const url = `http://localhost:3000/api/login?redirect_url=${redirect_url}&event=eventName&registry=registry`

相关问题