2015-08-28 57 views
0

的具體參數我已經node application和我得到以下URL(在req.header快遞)
我需要改變(在重定向URL)的端口號例如從7777788888更改URL

我試着用解析編碼和沒有成功解碼但也許我錯過了什麼,

我需要使用標準(解析編碼和解碼)的方式和不僅僅是更換。 ..(哪些作品)

任何想法如何做到這一點?我需要在最後更改此URL以保持它在正好相同的格式(後編碼/解碼...)如下。

http://gr-t6fa45e73.go.grp.corp:54001/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2Fro-d3ma32e85.mo.grp.corp%3A77777%2Flogin%2Fcallback&client_id=zs6.node

+1

你問這個已經... –

回答

1

如何使用url

var URL ="http://gr-t6fa45e73.go.grp.corp:54001/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2Fro-d3ma32e85.mo.grp.corp%3A77777%2Flogin%2Fcallback&client_id=zs6.node"; 

var parts = URL.split("redirect_uri="),  
decoded = decodeURIComponent(parts[1])), 
red = url.parse(decoded); 
red.port=88888; 
URL = parts[0]+"redirect_uri="+encodeURIComponent(url.format(red)); 

UPDATE使用此版本的URI.js

我用的.build代替.format。

DEMO

結果:

http://gr-t6fa45e73.go.grp.corp:54001/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2Fro-d3ma32e85.mo.grp.corp%3A88888%2Flogin%2Fcallback%26client_id%3Dzs6.node

+0

謝謝,但我嘗試一下,它不工作,目前兩個問題1.端口沒有改變!,2。在URL的末尾我得到了回調%26client_id%3Dzs6。我需要像callback&client_id = zs6.node之前那樣得到它,有什麼想法嗎? –

+0

你能記錄改變了什麼嗎?我自己並不執行任何節點編碼,只是在node.js站點上找到了url插件,但沒有節點服務器來測試它。 FWIW redirectURL不是一個有效的編碼的URL,如果它在解碼之前有&在 – mplungjan

+0

謝謝,但對於我來說,如果你複製這個URL並在JSFiddle中提供了一個解決方案,JS就足夠了,那麼節點在這裏不是一個大參數?更改端口並將URL返回到起點的邏輯(正如我在帖子中所述),只是更改了端口,這就是問題所在...... –