我正在尝试为所有 Angular 2 http 请求设置基本 url。以下是我的应用程序的基本设置。
class HttpOptions extends BaseRequestOptions {
url:string = "http://10.7.18.21:8080/api/";
}
bootstrap(AppComponent, [
HTTP_PROVIDERS,
provide(RequestOptions, {useClass: HttpOptions})
]);
export class AppComponent {
users:Array<User>
constructor(private http: Http) {
http.get("/users")
.subscribe(res => this.users = res.json());
}
}
请求未发送至http://10.7.18.21:8080/api/users http://10.7.18.21:8080/api/users正如我对我的配置的预期。相反,请求被发送到http://localhost:8000/用户 http://localhost:8000/users.
如何在 Angular 2 应用程序中设置 http 请求的基本 url?
我在用角度 2.0.0-beta.0.
对于 Angular 4.3+ 和 @Angular/common/http
这可以通过拦截器来完成
@Injectable()
export class ExampleInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const url = 'http://myurl.com';
req = req.clone({
url: url + req.url
});
return next.handle(req);
}
}
应用程序模块.ts
import { NgModule } from '@angular/core';
import { Injectable } from '@angular/core';
import { HttpClientModule, HttpRequest, HTTP_INTERCEPTORS } from '@angular/common/http';
@NgModule({
declarations: [
AppComponent,
...
],
imports: [
BrowserModule,
HttpClientModule,
...
],
providers: [
AppComponent,
{ provide: HTTP_INTERCEPTORS, useClass: ExampleInterceptor, multi: true }
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
编辑:HttpClient 和 HttpInterceptor 在 Angular 4.3 中引入
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)