【发布时间】:2018-05-19 14:34:25
【问题描述】:
我在使用 Angular 4 框架的 Typescript 文件中遇到错误。 IntelliJ IDE 无法识别 HttpRequest 的任何数据类型。
代码如下:
import {Component, Injectable, OnInit} from '@angular/core';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/of';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import {ActivatedRoute, Router} from "@angular/router";
import {
HttpClient, HttpErrorResponse, HttpEvent, HttpHandler, HttpHeaders, HttpRequest,
HttpResponse, HttpInterceptor, HttpEventType} from "@angular/common/http";
import * as $ from "jquery";
@Injectable()
export class Service {
public getNames() {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (request.responseType == 'json') {
request = request.clone({ responseType: 'text' });
return next.handle(req).map(response => {
if (response instanceof HttpResponse) {
response = response.clone<any>({ body: JSON.parse(response.body) });
}
return response;
});
}
}
来自以下 GitHub 网站:https://github.com/angular/angular/issues/18396#issuecomment-349403045
我检查了我正在导入“@angular/common/http”,并且我的 Typescript 版本是最新的(我有 2.6.2 版)。
有谁知道如何解决这个问题? 任何建议将不胜感激。
谢谢。
【问题讨论】:
-
如果你指出你遇到了什么错误会很有帮助
-
我知道该数据类型在那里不被识别或允许。感谢您的回复。
-
拦截器不应该在方法中。请阅读文档angular.io/guide/http#intercepting-all-requests-or-responses
-
此修复有效...我已阅读文档但错过了该细节。谢谢你指出。但是,我在解析 JSON 时仍然遇到错误。将进一步研究这个问题。
标签: angular httpclient angular-http-interceptors