Ошибка типа Angular 6: не удается прочитать свойства неопределенной (чтение «длины») ошибки

#angular #api #rxjs #httprequest

#angular #API #rxjs #httprequest

Вопрос:

 createToken() {
    this._tokenService
        .getAuth(this.userId, this.token)
        .subscribe(res => 
        {}, 
        error => {
            console.log(error);
        });
    }

    getAuth(upn, token) {
        var param = {
            Upn: upn,
            Token: token
        };

        console.log(param);
        
        return this._http.post(
            this.REST_API_ADDR   "auth", 
            param, 
            this.getAuthRequestHeader()
        );
    }

    getAuthRequestHeader() {
        console.log("header");

        const authHeaders = new HttpHeaders({
            'Content-Type':'application/json',
        });

        return { headers: authHeaders };
    }
 

Попробуйте getAuth выполнить запрос на сохранение токена. Запрос не вызывает API и выдает ошибку.

Ошибка типа: не удается прочитать свойства неопределенной (чтение «длины») в HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.applyUpdate (http.js:199) в http.js:170 в Array.forEach () в HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.init (http.js:170) в HttpHeaders.push../node_modules/@angular/common/fesm5/http.js.HttpHeaders.forEach (http.js:235) в Observable._subscribe (http.js:1435) в Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable ._trySubscribe (Observable.js:42) в Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:28) в MapOperator.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapOperator.call (map.js:18) в Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:23)

Не могли бы вы сказать мне, какую часть проверять при возникновении этой ошибки? Кроме того, если вы знаете причину ошибки и как ее устранить, пожалуйста, дайте мне знать.

Комментарии:

1. каково значение «токена» и «upn»

Ответ №1:

Ошибка описана и устранена здесь: https://github.com/angular/angular/issues/18743#issuecomment-367742057

По сути, ваш заголовок имеет неопределенное / нулевое значение. Вы должны проверить параметр заголовка, который вы передаете в запрос.