2016-06-27 89 views
0

对不起,我的词汇量非常有限,任何帮助澄清这个问题深表谢意。路由时获取网址url

我使用Nodejs和Express构建服务器,它有一个类似/new/:url的路由。我通过使用req.params.url来访问在URL上传递的值。这适用于简单的字符串,如chocolate,但是,如果我传递网址,如http://www.google.com,那么它将不会路由到/new/:url

问题:我该如何传递网站网址并通过Node/Express访问它?

编辑:我想使用GET方法,显然一种解决此问题的方法是通过通配符/正则表达式。

非常感谢您的帮助!

+2

使用encodeURIComponent方法,但做这种[开放重定向]时要小心(HTTPS:/ /www.owasp.org/index.php/Open_redirect)。 – ceejayoz

回答

0

为我工作的解决方案是Regex。相反路由为/new/:url的,我用:

/new/:url(*) 

所以,如果http://www.google.com给出一个参数:

req.params.url = "http://www.google.com" 
1

使用Post方法。

  1. 集标题 “内容类型”: “应用/ JSON”
  2. 集体{ “urlblahblah〜”: “https://www.google.com”}
  3. 然后解析它作为JSON在服务器端
1

你可以使用Javascripts encodeURIComponent,所以当你传递到你的服务器上的客户端时,你会allsways编码的URL,所以你可以传递它作为常规参数。或由绿巨人提到如果投稿是一个选项,你可以把它当作身体PARAM以及...

var url = encodeURIComponent("http://some.url/asdasa?asdas=12312") 

将导致:

"http%3A%2F%2Fsome.url%2Fasdasa%3Fasdas%3D12312" 

这是安全的,合格的PARAM