无法在node express js中获取url作为查询字符串参数

时间:2017-06-08 02:00:52

标签: node.js http express server

如何将URL作为node.js中的查询字符串参数。

例如:当我使用以下网址点击浏览器时:

http://localhost:3000/key1/https://www.google.com/key2/c,我无法将值1作为" https://www.google.com"。我在浏览器中收到错误,说无法获得查询字符串。但是如果我用一些随机字符串或数字替换url,我的代码就可以工作。

1 个答案:

答案 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

注意没有斜线或冒号。 ;)