Update:
http-клиент удаляет # f суждения URL-адреса до того, как он запрашивает сервер для этой страницы, поэтому сервер никогда не имеет к нему доступа, это , доступный только браузеру.
Когда агент (браузер) запрашивает ресурс с сервера, агент отправляет только URI на сервере (не фрагмент). Вместо этого агент ожидает, что сервер отправит ответ, тогда агент обрабатывает ресурс в соответствии с типом документа и значением фрагмента. [source & для получения дополнительной информации здесь является link]
Итак, если у вас возникли какие-либо данные в фрагменте, то это до вас, чтобы обработать эти данные (AJAX)
Вы можете думать, чтобы захватить хэш на клиенте JavaScript (
window.location.hash
) и отправить его на обслуживание. В этом случае вы получите строку, как это, вот пример:
var req_url = 'http://localhost:4001/app1/#access_token=FH2yCAcgmPjMOtKcp3DE&refresh_token=pjgTyaj';
HashKeyValueParsed_JSON = {};
require('url').parse(req_url).hash.substring(1).split('&').forEach(function (x) {
var arr = x.split('=');
arr[1] && (HashKeyValueParsed_JSON[arr[0]] = arr[1]);
});
console.log(HashKeyValueParsed_JSON); //Output JSON: { access_token: 'FH2yCAcgmPjMOtKcp3DE', refresh_token: 'pjgTyaj' }
Вы получите выход:
{ access_token: 'FH2yCAcgmPjMOtKcp3DE',
refresh_token: 'pjgTyaj' }
Я рекомендую вам держать все ваши требуют из цикла или какая-либо функция, потому что это блокирующий вызов в Node.js (хотя он использует кеш [здесь есть источник link]). Для получения дополнительной информации вы можете прочитать это answer.
Возможный дубликат [Node.js: прочитать параметры, переданные по URL-адресу] (http://stackoverflow.com/questions/7398264/node-js-read-params-passed-in-the-url) – vittore
@vittore Я уже проверил вышеуказанную ссылку, связанную с выборкой параметров запроса. Но мой вопрос: «#access_token» – user3180402
Кажется странным, что access_token передается таким образом. Есть ли причина, по которой он не может быть передан как стандартный параметр URL? – pgreen2