Request: Das Fehlen von unescape() von self._qs unterbricht Anfragen mit Authentifizierung

Erstellt am 1. Juni 2015  ·  4Kommentare  ·  Quelle: request/request

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)

Hilfreichster Kommentar

Ich stelle fest, dass Unescape veraltet ist: ( Referenz )
folglich sollte self._qs.unescape(item) durch decodeURI(item) ersetzt werden

Alle 4 Kommentare

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen