0

次のようなURLがある場合

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 からアクセス トークンを取得することですが、リダイレクト先の URL はそのように構造化されています。 :

YOUR_REDIRECT_URI#
 access_token=USER_ACCESS_TOKEN
 &expires_in=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES

そして、URLからパラメータを取得する方法がわかりません...

4

2 に答える 2

3

node.js の URL から変数を直接取得するにはどうすればよいですか?

URL のハッシュ部分がサーバーに送信されないためです。

私の実際の問題は、クライアント側の認証を使用してFacebookからアクセストークンを取得することです[...]そして、URLからパラメーターを取得する方法がわかりません...

クライアント側でもそれらを「取得」する必要があります。

于 2012-08-22T09:12:52.800 に答える
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]));

これは、url パラメーターのタイプを検出しようとしないことに注意してください。

于 2012-08-22T05:20:38.743 に答える