「 http:// user:[email protected] 」などのhttp基本認証クレデンシャルを使用したGETリクエストは、「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に関連している可能性がありますが、どうすればそれが可能かわかりません。 もっとコンテキストが必要ですが、そのバグを再現する短いコード例を提供できますか?
Browserifyが提供する「querystring」ライブラリにはquerystring.unescape
が含まれていないため、この割り当ては期待どおりに機能しないようです。
参照:
https://github.com/substack/node-browserify/issues/826
https://github.com/mike-spainhower/querystring/issues/4
https://github.com/Gozala/querystring/issues/6
このライブラリのバグが原因ではないように思われるため、この問題を解決します。
@andornautあなたはそれを電子に固定する方法を見つけましたか? まだこのエラーが発生します
unscapeは非推奨になっていることに注意してください:(参照)
したがって、self._qs.unescape(item)はdecodeURI(item)に置き換える必要があります
最も参考になるコメント
unscapeは非推奨になっていることに注意してください:(参照)
したがって、self._qs.unescape(item)はdecodeURI(item)に置き換える必要があります