更改URL的特定参数

时间:2015-08-28 13:11:24

标签: javascript node.js url url-encoding urldecode

我已经node application而且我收到了以下网址(在req.header。的快递中)
我需要更改端口号(重定向网址),例如从7777788888

我尝试使用解析编码和解码但没有成功,但也许我想念一些东西,

我需要使用标准(解析编码和解码)方式而不只是替换 ...(有效)

知道怎么做吗?我在更改此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 个答案:

答案 0 :(得分: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));

更新使用此版本的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