Soj*_*jye 5 rest url service http angular
我想知道是否有一种动态的方式来获取基本网址,以便在http请求中使用?
有没有办法动态获取http://192.123.24.2:8080?
public getAllTickets() {
this._http.get('http://192.123.24.2:8080/services/', {
method: 'GET',
headers: new Headers([
'Accept', 'application/json',
'Content-Type', 'application/json'
])
})
Run Code Online (Sandbox Code Playgroud)
所以,我的请求看起来像:
public getAvailableVersions() {
this._http.get('../services', {
method: 'GET',
headers: new Headers([
'Accept', 'application/json',
'Content-Type', 'application/json'
])
})
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种不必硬编码REST调用URL的方法.或者是具有URL的全局变量的唯一选择?
谢谢!
使用 Angular2 2.0.0-beta.6 版本,您可以重写该merge方法
import {BaseRequestOptions, RequestOptions, RequestOptionsArgs} from 'angular2/http';
export class CustomRequestOptions extends BaseRequestOptions {
merge(options?:RequestOptionsArgs):RequestOptions {
options.url = 'http://192.123.24.2:8080' + options.url;
return super.merge(options);
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样注册这个类:
bootstrap(AppComponent, [HTTP_PROVIDERS,
provide(BaseRequestOptions, { useClass: CustomRequestOptions })
]);
Run Code Online (Sandbox Code Playgroud)
另一种方法是扩展 HTTP 对象以在请求 URL 的开头添加基本 URL。
Http首先,您可以创建一个类,用一个属性扩展该类baseUrl:
@Injectable()
export class CustomHttp extends Http {
constructor(backend: ConnectionBackend, defaultOptions: RequestOptions) {
super(backend, defaultOptions);
this.baseUrl = 'http://192.123.24.2:8080';
}
request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
console.log('request...');
return super.request(this.baseUrl + url, options).catch(res => {
// do something
});
}
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
console.log('get...');
return super.get(this.baseUrl + url, options).catch(res => {
// do something
});
}
}
Run Code Online (Sandbox Code Playgroud)
并按如下所述注册:
bootstrap(AppComponent, [HTTP_PROVIDERS,
new Provider(Http, {
useFactory: (backend: XHRBackend, defaultOptions: RequestOptions) => new CustomHttp(backend, defaultOptions),
deps: [XHRBackend, RequestOptions]
})
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11237 次 |
| 最近记录: |