Я использую angularjs $http
, чтобы послать запрос, для базового разрешения я представил заголовки с 'Authorization': this.basicAuthorization
JavaScript - сравнение двух одинаковых строк, но они не равны
Но это не работает, я узнал, что есть проблема в this.basicAuthorization
. Когда я заменить его строкой 'Basic SOME_BASE64_ENCODED_STRING'
this.basicAuthorization = 'Basic'+' '+ btoa('username'+';'+'password');
this.myString = 'Basic SOME_BASE64_ENCODED_STRING';
console.log(this.basicAuthorization + " " + typeof this.basicAuthorization + " lenght " + this.basicAuthorization.length);
console.log(this.myString + " " + typeof this.myString + " length " + this.myString.length);
if(this.basicAuthorization == this.myString){
console.log("equal")
}
else{
console.log('not equal');
console.log(this.basicAuthorization + " " + typeof this.basicAuthorization + " lenght " + this.basicAuthorization.length);
console.log(this.myString + " " + typeof this.myString + " length " + this.myString.length);
}
И что я вижу в консоли
не равна
Basic SOME_BASE64_ENCODED_STRING строка 82
Основная строка SOME_BASE64_ENCODED_STRING 82
Почему строки не равны, и поэтому, когда я использую btoa() и мой запрос HTTP не работает, и когда я обеспечиваю его this.myString
работает
примечание стороны: 'lenght' написано неправильно в первом' console.log'..it должно быть 'length' –
Если JS состояний, то они не равны - они не равны. Нет причин не доверять JS. – zerkms