GET-Anforderungen mit http-Basisauthentifizierungsdaten wie „ http://user:[email protected] “ schlagen mit dem Fehler „self._qs.unescape is not a function“ fehl.
Dieser Fehler tritt in request.js auf:
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)
}
Das Ändern Querystring.prototype.unescape
zur Verwendung des globalen unescape()
oder decodeURIComponent
scheint dieses Problem zu lösen.
Umgebung: Elektron 0.27.2 (Chrom 43)
Das könnte mit https://github.com/request/request/pull/1600 zusammenhängen, aber ich sehe nicht, wie das möglich ist. Ich brauche mehr Kontext, können Sie ein kurzes Codebeispiel geben, das diesen Fehler reproduziert?
Es scheint, dass die von Browserify bereitgestellte "querystring"-Bibliothek querystring.unescape
nicht enthält und daher diese Zuweisung nicht wie erwartet funktioniert.
Referenzen:
https://github.com/substack/node-browserify/issues/826
https://github.com/mike-spainhower/querystring/issues/4
https://github.com/Gozala/querystring/issues/6
Ich schließe dieses Problem, da es anscheinend nicht durch einen Fehler in dieser Bibliothek verursacht wird.
@andornaut hast du herausgefunden, wie man es auf Elektron repariert? Ich bekomme immer noch diesen Fehler
Ich stelle fest, dass Unescape veraltet ist: ( Referenz )
folglich sollte self._qs.unescape(item) durch decodeURI(item) ersetzt werden
Hilfreichster Kommentar
Ich stelle fest, dass Unescape veraltet ist: ( Referenz )
folglich sollte self._qs.unescape(item) durch decodeURI(item) ersetzt werden