Request: Falta unescape () de self._qs interrumpe las solicitudes con autenticación

Creado en 1 jun. 2015  ·  4Comentarios  ·  Fuente: request/request

Las solicitudes GET con credenciales de autenticación básicas de http como " http://user:[email protected] " fallan con el error "self._qs.unescape no es una función".

Este error ocurre en 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) 
  }

Cambiar Querystring.prototype.unescape para usar el unescape() global o decodeURIComponent parece resolver este problema.

Ambiente: Electron 0.27.2 (cromo 43)

Comentario más útil

Observo que unescape está en desuso: ( referencia )
en consecuencia, self._qs.unescape (elemento) debe reemplazarse por decodeURI (elemento)

Todos 4 comentarios

Eso podría estar relacionado con https://github.com/request/request/pull/1600 pero tbh no veo cómo es posible. Necesito más contexto, ¿puede proporcionar un ejemplo de código corto que reproduzca ese error?

Parece que la biblioteca de "cadenas de consulta" proporcionada por Browserify no incluye querystring.unescape y, por lo tanto, esta asignación no funciona como se esperaba.

Referencias:
https://github.com/substack/node-browserify/issues/826
https://github.com/mike-spainhower/querystring/issues/4
https://github.com/Gozala/querystring/issues/6

Estoy cerrando este problema ya que no parece ser causado por un error en esta biblioteca.

@andornaut , ¿encontraste cómo solucionarlo en electron? sigo recibiendo este error

Observo que unescape está en desuso: ( referencia )
en consecuencia, self._qs.unescape (elemento) debe reemplazarse por decodeURI (elemento)

¿Fue útil esta página
0 / 5 - 0 calificaciones