2016-06-27 118 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