gpt4 book ai didi

angular - 为 Angular 2 http 请求设置基本 url

转载 作者:太空狗 更新时间:2023-10-29 16:47:09 24 4
gpt4 key购买 nike

我正在尝试为我所有的 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://localhost:8000/users .

如何在 Angular 2 应用程序中为 http 请求设置基本 url?

我正在使用 Angular 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 { }

编辑:Angular 4.3 中引入了 HttpClient 和 HttpInterceptor

关于angular - 为 Angular 2 http 请求设置基本 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34516651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com