我正在修改一个现有的Angular项目(不是我的),向我的外部API添加一个新的调用。
这是服务方法:
getUserName(): Observable<any> {
return this.http.get<any>(environment.apiUrl + URLS.USER_NAME)
}
我把它用在appcomponent.ts如下:
this.userService.getUserName().subscribe((name) => {
this.user = name
})
执行时出现以下错误:
node_modulesERROR TypeError:无法在node_modules读取null的属性“长度”。/map.js.MapOperator.call/@角/公共/费斯姆5/node_modules更新(_subscribe)在node_modules_esm5每个()在_trySubscribe。/map.js:18/@角/公共/费斯姆5/node_modules(_esm5)在node_modules。/Observable.push./@角/公共/费斯姆5/_esm5每个(node_modules)在http.js:235。Observable.js.Observable.subscribe(_esm5)在Observable.push.。/Observable.js:24/rxjs/Array.for/内部/Observable.js.可观察。HttpHeaders.push.(Observable.js:43)在Observable.push.。/http.js.HttpHeaders.init/rxjs/http.js:170/内部/Observable.js.Observable.subscribe(Observable.js:29)在MapOperator.push.。/HttpHeaders.push./rxjs/http.js.HttpHeaders.for/内部/运算符/core.js:1673(HttpHeaders.push.)在http.js.HttpHeaders.apply。/http.js:235/rxjs/http.js:1435/内部/http.js:199(http.js:170)
这似乎是标头问题或某些订阅/可观察的错误,但我找不到错误所在。
请注意,异常是在发出请求之前引发的,因此在创建该请求时一定是客户端问题。
编辑:
这是我找到的唯一拦截器:
@Injectable({
providedIn: 'root'
})
export class TenantHttpInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (req.url.indexOf(environment.apiTFSmin) === -1) {
let tenantReq = req.clone({ headers: req.headers.set('current', sessionStorage.getItem('current')) })
if (sessionStorage.getItem('tenant') != null && sessionStorage.getItem('newTenant') == null) {
tenantReq = tenantReq.clone({ headers: tenantReq.headers.append('Tenant', sessionStorage.getItem('tenant')) })
} else if (sessionStorage.getItem('newTenant') != null) {
tenantReq = tenantReq.clone({ headers: tenantReq.headers.append('Tenant', sessionStorage.getItem('newTenant')) })
sessionStorage.removeItem('newTenant')
}
if (req.method === 'POST' || req.method === 'PUT') {
tenantReq = tenantReq.clone({ headers: tenantReq.headers.append('Content-Type', 'application/json') })
}
return next.handle(tenantReq)
} else {
const tenantReq = req.clone({ headers: req.headers.set('Authorization', 'Bearer ' + btoa('pescanilla-ext:m12345678*')) })
// const tenantReq = req.clone()
return next.handle(tenantReq)
}
}
}
您没有检查“当前”标头是否实际存在于存储中。
let tenantReq = req.clone({ headers: req.headers.set('current', sessionStorage.getItem('current')) })
编辑:一旦您尝试发送带有空值标头的请求,Http客户端将抛出错误。尝试用静态值替换sessionStorage.get项目('当前')
并对其进行测试。
问题内容: 您好,我正在尝试将React-Router与Firebase配合使用。但这给了我这个错误。 无法读取null的属性“ props” 这正是代码,我正在使用我的react-router 向下代码在组件上作为loginpanel组件。 我的react路由器在main.jsx上声明,我的react-router看起来像这样。 问题答案: 在回调中,指针不再指向您的React组件。有很多方法可
我收到以下JavaScript错误: TypeError:无法读取null的属性“title” 代码如下: mds-iMac: cmscart imac$nodemo app[nodemo] 1.11.0[nodemo]随时重启,输入[nodemo]观看:.[nodemo]启动(node: 2274)DeprecationWarning:在猫鼬中被弃用 [nodemon]应用程序崩溃-正在等待文件
我在我的Gatsby应用程序中得到了这个错误,该应用程序为作者提取places数据。当author.social的map()点为null时,该错误将显示 谢谢
当我通过Ajax重新加载Datatable时,我不断得到“UncaughtTypeError:无法读取null的属性'aoData'。我基本上有一个主数据表(表1),每行有一个链接,其中包含一个包含另一个数据表的弹出模式。(我使用PHP填充模态和内部表的特定类和id,以确保它们都保持唯一。)下面是解释我所说内容的代码: 位于modals内部的数据表行可以通过ajax进行添加、删除和编辑。在我运行a
问题内容: 我收到错误消息,文件中的重要部分在…我想知道,因为game.js在下面的目录中,所以找不到画布?我该怎么办? ./index.html: ./javascript/game.js: 问题答案: 我想问题是您的js在加载html之前运行。 如果使用的是jquery,则可以使用文档就绪函数包装代码: 或者只是将您的js放在 。
我知道有类似的线程讨论范围问题。 使用以下组件 当您单击时,您会得到的属性'setState' 我知道你可以像这样做,但所有这些看起来都很奇怪,只是为了让它工作。 什么被认为是最优雅的方式来做到这一点?当然,人们必须有一个首选的方式,除了眼睛疼痛之外,还有其他好处?