تفشل طلبات GET مع بيانات اعتماد المصادقة الأساسية لـ http مثل " http: // user: [email protected] " بسبب الخطأ "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 لكن tbh لا أرى كيف يكون ذلك ممكنًا. أحتاج إلى مزيد من السياق ، هل يمكنك تقديم مثال قصير على رمز يعيد إنتاج هذا الخطأ؟
يبدو أن مكتبة "querystring" التي يوفرها Browserify لا تتضمن 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 هل وجدت كيفية إصلاحه على الإلكترون؟ ما زلت أتلقى هذا الخطأ
ألاحظ أنه تم إهمال unescape: ( مرجع )
وبالتالي يجب استبدال self._qs.unescape (عنصر) بـ decodeURI (عنصر)
التعليق الأكثر فائدة
ألاحظ أنه تم إهمال unescape: ( مرجع )
وبالتالي يجب استبدال self._qs.unescape (عنصر) بـ decodeURI (عنصر)