Мой вопрос похож на https://stackoverflow.com/questions/45207615/cannot-find-the-angular-common-http-module и https://stackoverflow.com/questions/45325515/error-loading-angular-common-http-angular-2 но проблема немного в другом: я использую Angular 4.3.5 и пытаюсь читать данные из веб-API. (Этот API выводит данные JSON и использует SignalR и .net Core). Я выполнил несколько руководств и придумал этот код для класса, который фактически свяжется со службой:
import 'rxjs/add/operator/map';
import { HttpClient, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Configuration } from './Configuration.js';
@Injectable()
export class DataService {
private actionUrl: string;
constructor(private http: HttpClient, private configuration: Configuration) {
this.actionUrl = configuration.serviceUrl;
}
//public getAll<T>(): Observable<T> {
// return this.http.get<T>(this.actionUrl);
//}
public getSingle<T>(id: number): Observable<T> {
return this.http.get<T>(this.actionUrl + id);
}
}
@Injectable()
export class CustomInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (!req.headers.has('Content-Type')) {
req = req.clone({ headers: req.headers.set('Content-Type', 'application/json') });
}
req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
console.log(JSON.stringify(req.headers));
return next.handle(req);
}
}
Теперь сборка этого проекта (я использую Visual Studio 2017 Enterprise) и запуск задачи gulp для переноса .ts в .js работает просто отлично, так же как и все всплывающие подсказки intellisense - IDE распознает существование этих вещей. Но если я открою его в браузере (неважно, Firefox, Edge или Chrome), я получаю следующую ошибку: zone.js:958 GET http://localhost:3966/libs/@angular/common/bundles/common.umd.js/http 404 (Not Found)
Если я отредактирую транспилированный файл javascript вручную и напишу там common-http.umd.js, файл будет найден. (Это причина, по которой вверху я импортирую Configuration.js вместо Configuration - похоже, он не хочет автоматически разрешать суффикс, как в некоторых учебниках). Надеюсь, я не слишком расплывчата, так как я впервые спрашиваю о чем-то публично. Также я не смог найти ответ на заданные вопросы.