Запросы GET с учетными данными базовой аутентификации http, такими как « http://user:[email protected] », завершаются с ошибкой «self._qs.unescape не является функцией».
Эта ошибка возникает в request.js:
if (self.uri.auth && !self.hasHeader('authorization')) {
var uriAuthPieces = self.uri.auth.split(':').map(function(item) {return self._qs.unescape(item)})
self.auth(uriAuthPieces[0], uriAuthPieces.slice(1).join(':'), true)
}
Изменение Querystring.prototype.unescape
для использования глобального unescape()
или decodeURIComponent
, по-видимому, решает эту проблему.
Окружение: Электрон 0.27.2 (хром 43)
Это может быть связано с https://github.com/request/request/pull/1600 , но я не понимаю, как это возможно. Мне нужно больше контекста, можете ли вы предоставить краткий пример кода, который воспроизводит эту ошибку?
Кажется, что библиотека «querystring», поставляемая Browserify, не включает querystring.unescape
, и поэтому это назначение не работает должным образом.
Ссылки:
https://github.com/substack/node-browserify/issues/826
https://github.com/mike-spainhower/querystring/issues/4
https://github.com/Гозала/querystring/issues/6
Я закрываю эту проблему, так как она не вызвана ошибкой в этой библиотеке.
@andornaut , ты нашел, как это исправить на электроне? я все еще получаю эту ошибку
Отмечу, что unescape устарел: ( ссылка )
следовательно, self._qs.unescape(item) следует заменить на decodeURI(item)
Самый полезный комментарий
Отмечу, что unescape устарел: ( ссылка )
следовательно, self._qs.unescape(item) следует заменить на decodeURI(item)