Въпросът ми звучи подобно на 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-tooltips - 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 - изглежда не иска автоматично да разрешава суфикса, както в някои уроци). Надявам се, че не съм твърде неясен, тъй като за първи път питам нещо публично. Също така не успях да намеря отговор в зададените въпроси.