如果我有像
这样的网址www.example.com/path#one=a1&two=a2&three=a3
如何直接从node.js中的url检索变量? 由于我使用ExpressJS,我尝试使用req.query.variable(和req.params.variable),但这不起作用......
我的实际问题是通过使用客户端身份验证(https://developers.facebook.com/docs/authentication/client-side/)从Facebook获取访问令牌,但它重定向到的网址是结构如下:
YOUR_REDIRECT_URI#
access_token=USER_ACCESS_TOKEN
&expires_in=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES
我不知道如何从网址中获取参数......
答案 0 :(得分:3)
如何直接从node.js中的url检索变量?
完全没有,因为URL的哈希部分没有传输到服务器。
我的实际问题是从Facebook获取访问令牌,使用客户端身份验证[...]我不知道如何从网址获取参数......
你也必须“获取”他们客户端。
答案 1 :(得分:0)
function parseQueryString(query) {
var parsed = {};
query.replace(
new RegExp('([^?=&]+)(=([^&]*))?', 'g'),
function ($0, $1, $2, $3) {
parsed[decodeURIComponent($1)] = decodeURIComponent($3);
}
);
return parsed;
}
var url = "www.example.com/path#one=a1&two=a2&three=a3";
console.log(parseQueryString(url.split('#')[1]));
请注意,这不会尝试检测网址参数的类型。