Bar*_*ski 1 javascript php ajax urlencode restful-url
在我们的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"作为查询字符串.
我没有其他想法如何解决这个问题.
查询字符串的组件是键名和值.
?key=value&key=value
Run Code Online (Sandbox Code Playgroud)
不要对=字符进行编码.它们不是组件的一部分,它们将组件分开.
var url = 'http://www.example.com/resource?' +
encodeURIComponent("resource.name~") +
"=" +
encodeURIComponent("%" + query + "%");
Run Code Online (Sandbox Code Playgroud)