Request: Hilangnya unescape() dari self._qs merusak permintaan dengan otentikasi

Dibuat pada 1 Jun 2015  ·  4Komentar  ·  Sumber: request/request

DAPATKAN permintaan dengan kredensial otentikasi dasar http seperti " http://user:[email protected] " gagal dengan kesalahan "self._qs.unescape is not a function".

Kesalahan ini terjadi di 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) 
  }

Mengubah Querystring.prototype.unescape untuk menggunakan unescape() atau decodeURIComponent global muncul untuk mengatasi masalah ini.

Lingkungan: Elektron 0.27.2 (krom 43)

Komentar yang paling membantu

Saya perhatikan bahwa unescape sudah usang: ( referensi )
akibatnya self._qs.unescape(item) harus diganti dengan decodeURI(item)

Semua 4 komentar

Itu mungkin terkait dengan https://github.com/request/request/pull/1600 tapi tbh saya tidak melihat bagaimana itu mungkin. Saya membutuhkan lebih banyak konteks, dapatkah Anda memberikan contoh kode pendek yang mereproduksi bug itu?

Tampaknya pustaka "string kueri" yang disediakan oleh Browserify tidak menyertakan querystring.unescape dan oleh karena itu tugas ini tidak berfungsi seperti yang diharapkan.

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

Saya menutup masalah ini karena tampaknya tidak disebabkan oleh bug di perpustakaan ini.

@andornaut apakah Anda menemukan cara memperbaikinya di elektron? saya masih mendapatkan kesalahan ini

Saya perhatikan bahwa unescape sudah usang: ( referensi )
akibatnya self._qs.unescape(item) harus diganti dengan decodeURI(item)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat