【发布时间】:2014-12-09 09:38:15
【问题描述】:
在我们的 RESTful API 中,我们使用 RQL 来解析 URL-s 并从中构建查询。这是一个查询示例:
http://www.example.com/resource?resource.name~=%Some name%
转换为LIKE 运算符。
然后,在我们的前端,我们实现了一个搜索字段,其中的更改会触发一个 ajax 请求:
'http://www.example.com/resource?resource.name~=%' + query + '%'
当然,有一个错误 - 每个带有“%”的特殊组合都会在服务器端转换为一个字符,导致查询不返回任何结果。
如何解决?
我尝试encodeURIComponent ? 之后的所有内容,但它变得更糟,例如 resource.name~%3D%25befr%25 其中“befr”作为查询字符串。
我不知道如何解决这个问题。
【问题讨论】:
-
您面临什么服务器端错误?未知问题很难找到解决方案。
-
提示!使用
<>而不是~=,你需要添加或修剪%吗? -
正如我所说:“每个带有“%”的特殊组合都会在服务器端转换为一个字符,导致查询不返回任何结果。”。例如,尝试搜索以“b”开头的内容会转到包含
%b的 URL,这是表示字符的特殊组合 -
可以在MYSQL端修剪
SELECT TRIM(BOTH '%' FROM 'query'); -
好吧,我假设您正在尝试为有问题的服务器寻找解决方法。与此相反,服务器似乎做了正确的事情:按照 URI 规范要求处理 % 转义序列。
标签: javascript php ajax urlencode restful-url