URL GET请求JavaScript的编码/转义空间

URL GET请求JavaScript的编码/转义空间,javascript,ajax,url,get,request,Javascript,Ajax,Url,Get,Request,我目前正在尝试处理系统中的一个bug,其中我的GET查询数据库的请求无法处理空格。我在JavaScript中的GET请求看起来是这样的,我100%确定它适用于没有空格的情况: let values = JSON.parse(ajax().sync().get(url)); 有关此错误的示例,请使用以下URL: localhost:8000/database/data?id_one=one&id_two=one hundred 很明显,传递它不会返回任何结果

我目前正在尝试处理系统中的一个bug,其中我的GET查询数据库的请求无法处理空格。我在JavaScript中的GET请求看起来是这样的,我100%确定它适用于没有空格的情况:

let values = JSON.parse(ajax().sync().get(url));
             
有关此错误的示例,请使用以下URL:

localhost:8000/database/data?id_one=one&id_two=one hundred
很明显,传递它不会返回任何结果,因为我没有考虑空间。因此,我尝试使用“%20”逃逸空间,如下所示:

localhost:8000/database/data?id_one=one&id_two=one%20hundred
但是,这仍然没有返回任何内容,正如我在服务器端看到的,它正在将带有“%20”的URL作为文本传递到查询中;它正在查询数据库中的“1%20100”而不是“100”。我可以说,因为服务器端的“GET”看起来是这样的:

GET localhost:8000/database/data?id_one=one&id_two=one%20hundred 304 1.877 ms

如何避开这样的空间以正确查询数据库?我尝试用“+”代替“%20”,但不幸的是,这也不能解决问题。

您考虑过解构请求服务器端吗?我假设您将Node.JS与Express一起使用。如果是这种情况,请尝试删除
req.param.id_two

完美答案中的特殊字符(+和%20),就像您所说的那样,我以前尝试通过服务器在客户端处理它。对于其他可能遇到同样问题的人,我也这样处理:
req.param.id_two=req.param.id_two.replace(/%20/g,”)
(我使用.replace()中的正则表达式将“%20”的所有实例替换为空格)非常感谢!