当前位置: 首页 > 知识库问答 >
问题:

角度6类型错误:无法读取未定义的属性(读取“长度”)错误

丁绪
2023-03-14
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 };
    }

尝试使用< code>getAuth请求来存储令牌。请求不调用API并抛出错误。

TypeError:无法在HttpHeaders.push处读取undefined的属性(读取“length”)../node _ modules/@ angular/common/Fe sm5/http . js . http headers . apply update(http . js:199)at http . js:170 at array . foreach()at http headers . push..HttpHeaders.push上的/node _ modules/@ angular/common/Fe sm5/http . js . http headers . init(http . js:170)../node _ modules/@ angular/common/Fe sm5/http . js . http headers . foreach(http . js:235)at Observable。_subscribe (http.js:1435)在Observable.push../node _ modules/rxjs/_ es M5/internal/observable . js . observable . _ try subscribe(observable . js:42)at observable . push../node _ modules/rxjs/_ es M5/internal/observable . js . observable . subscribe(observable . js:28)在MapOperator.push../node _ modules/rxjs/_ es M5/internal/operators/map . js . map operator . call(map . js:18)at observable . push../node _ modules/rxjs/_ es M5/internal/observable . js . observable . subscribe(observable . js:23)

你能告诉我当这个错误发生时检查哪个部分吗?另外,如果你知道错误的原因以及如何解决,请告诉我。

共有1个答案

洪知
2023-03-14

此处描述并解决了该错误:https://github.com/angular/angular/issues/18743#issuecomment-367742057

基本上,你的头有未定义/空值。您应该检查传递给请求的header-option

 类似资料:
  • 在我的错误处理程序中,当我遇到错误时,我试图导航到另一个页面。 我尝试获取项目列表,如果失败,我想导航到“/error401”。我一直试图这样做: UserTablecomponent: 这个电话可能有点奇怪。它所做的是调用其余的,看看我有什么基于令牌的ID。然后在下一次调用中使用该ID 授权服务 迈勒手 这是我想导航到“/error401”的地方,但是 错误错误类型错误:无法读取未定义的属性“导

  • 我收到错误: 错误类型错误: 无法读取在评估 (webpack-internal:///./node_modules/@angular/common/esm5/http.js:163) 处未定义的属性 “长度”在 Array.forEach () 在 httpHeaders.lazyInit (webpack-internal:///./node_modules/@angular/common/e

  • 我想在我的角度项目中添加钢系列。我有createad html-compass组件,但我收到了这个错误: _services错误类型错误:无法读取未定义的属性(读取主题)在ProjectService…/app/Subject.js:53/_next(node_modules)在_esm5__tryOrUnsub[EventEmitter.push.](node_modules)在_esm5…/c

  • 我的代码: 错误: 未处理PromisejectionWarning:TypeError:无法读取未定义的未处理PromisejectionWarning:未处理的promise拒绝的属性“forEach”。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。(拒绝id:1)(节点:7188)[DEP0018]弃用警告:未处理的promise

  • 我有一个旧的科尔多瓦项目,我正在更新。作为这个过程的一部分,我删除了android平台并重新阅读了它。 现在,当我尝试构建项目时,出现以下错误: 这在我删除平台之前确实起到了作用,所以我猜是一个bug或一个配置文件发生了变化。 这里有一个类似的问题:https://pt.stackoverflow.com/questions/219442/cordova-build-android-error-c

  • 我试图使一个对话框弹出每当我得到一个错误从myerrorhandler我可以看到调用,但不是 这是我的错误消息。 错误类型错误:无法读取未定义的属性'openDialogTEST' 奇怪的是,如果我用按钮调用它,一切都很好。这是我的课程: usertable.component.ts auth.service.ts myerrorHandle.ts 对话框.component.ts 完整错误消息: