javascript - Comment obtenir des paramètres lorsqu'il y a un signe # dans l'URL? noeudjs
世界只因有你
世界只因有你 2017-05-24 11:38:59
0
3
1209

Par exemplehttps://beta.biaoqing.com/callback/qq/?#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000
我在nodejs中用var access_token=req.query.access_token;impossible d'obtenir access_token

世界只因有你
世界只因有你

répondre à tous(3)
仅有的幸福

Impossible d'obtenir, # est le hachage frontal Lors de l'envoi d'une demande, le hachage après celle-ci ne sera pas envoyé à l'url. Je ne vous connais pas. Pourquoi y a-t-il #

à la fin ?
黄舟

vous apprend une méthode particulière :

const querystring = require('querystring');
let str = 'https://beta.biaoqing.com/callback/qq/#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000';

let r = querystring.parse(str);
console.log(r);

for(value in r){
    console.log('key: ', value);
    console.log('value: ', r[value]);
}

C’est considéré comme opportuniste.
La méthode Object.values() dans es6 peut remplacer la méthode for in ci-dessus, mais elle n'est compatible qu'avec la version node v7.x.

------------------------Séparateur-------------------- - ---------

Améliorez la méthode ci-dessus : supprimez le symbole # et tout ira bien.

const querystring = require('querystring');
const url = require('url');

let str = 'https://beta.biaoqing.com/callback/qq/?#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000';
let str2 = str.replace(/\#/g,'');//去掉 # 符号
let obj_query = querystring.parse(url.parse(str2).query); // 解析URL的 query 部分
console.log(obj_query.access_token);

迷茫

Il s'agit d'une page de destination de secours autorisée par un tiers, n'est-ce pas ?

Le front-end de cette page de destination peut récupérer le contenu derrière le hachage, la logique peut donc être la suivante :

L'utilisateur passe de votre site Web à l'autorisation tierce-> L'autorisation tierce passe avec succès à la page de destination de rappel prédéfinie sur votre site Web-> Le hachage de la page de destination de rappel contient access_token et d'autres paramètres-> js est pris. Envoyez une requête asynchrone à l'interface définie dans le backend en utilisant les paramètres du hachage -> renvoie le succès, le contrôle js saute -> Le navigateur est dirigé vers la véritable page de réussite de l'autorisation interactive pour l'utilisateur

En d'autres termes, la page de destination renvoyée lors de la première étape est une page de transit. Le but est d'utiliser js pour supprimer le contenu haché et de le renvoyer au backend avec ajax une fois que le backend a obtenu le jeton autorisé par le tiers. , js contrôle immédiatement le changement. Il est préférable d'ajouter une interface utilisateur à cette page de transfert, comme une invite telle que sauter, ce qui est absolument acceptable en termes d'expérience utilisateur.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal