首页 > 解决方案 > URL GET 请求 JavaScript 的编码/转义空格

问题描述

我目前正在尝试处理我的系统中的一个错误,我的 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 传递到查询中;它在数据库中查询“one%20hundred”而不是“100”。我可以告诉,因为服务器端的“GET”看起来像这样:

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

如何转义这样的空间以正确查询数据库?我尝试使用 '+' 代替 '%20' 但不幸的是,这也没有解决它。

标签: javascriptajaxurlgetrequest

解决方案


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


推荐阅读