如何将URL作为node.js中的查询字符串参数。
例如:当我使用以下网址点击浏览器时:
http://localhost:3000/key1/https://www.google.com/key2/c,我无法将值1作为" https://www.google.com"。我在浏览器中收到错误,说无法获得查询字符串。但是如果我用一些随机字符串或数字替换url,我的代码就可以工作。
答案 0 :(得分:0)
它无效的原因是因为您的网址参数不是网址编码的。如果您有斜杠或其他各种符号,例如:,它将打破您的参数。
例如,
param1 = thisisastring,
param2 = thisisalsoastring
<ip:port>/param1/param2
好!
param1 = thisisastring/somethingelse,
param2 = thisisalsoastring
<ip:port>/param1/param2
破碎!
为什么?
表示看到3个参数:
thisisastring somethingelse thisisalsoastring
解决方案:URL encode您的请求。有很多图书馆可以做到这一点。
https://www.google.com应编码为:https%3A%2F%2Fwww.google.com
注意没有斜线或冒号。 ;)