【发布时间】:2017-12-26 23:42:56
【问题描述】:
我发现我正在处理的 Phoenix API 没有像我预期的那样处理编码的 url 查询参数 - 地图的格式不正确并且正在评估为 nil...看来 Phoenix 不是将%3D 识别为参数的等号。最好只说明问题:
在客户端,我想向以下网址发出GET 请求:
localhost:4000/api/v1/users?test=testing
我正在检查查询参数并使用以下函数对其进行编码:
const encode = (url) => {
return (/[?]/.test(url) ? url.slice(0, url.indexOf("?") + 1) + encodeURIComponent(url.split("?")[1]) : url)
}
所以请求发送到
localhost:4000/api/v1/users?test%3Dtesting
但是,当我在服务器上IO.inspect params 时,它会记录
%{"test=testing" => nil}
如果我不对查询参数进行编码,那么服务器会按预期处理这些参数 - %{"test" => "testing"}。
似乎我没有正确编码客户端上的参数。谁能澄清我的错误?
【问题讨论】:
标签: javascript urlencode query-parameters