[英]Angular 2 dynamically change base url in post requests
我在Angular2 / TypeScript應用程序中有角度服務,它們不知道http服務的位置 - 顯然需要什么。
出於測試目的,我需要運行具有多個目標的TypeScript應用程序 - 它可以是localhost(用於測試)或雲環境。 目標是通過源代碼中的單行更改將所有請求從一個地址切換到另一個地址。 可接受的解決方案不應要求在所有角度服務中將目標位置添加為常量值。
我找到了一個很好的例子如何做Angular 2 - 動態查找在http請求(服務)中使用的基本URL
使用Angular2的2.0.0-beta.6版本,您可以覆蓋合並方法
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);
}
}
您可以這樣注冊此課程:
bootstrap(AppComponent, [HTTP_PROVIDERS,
provide(BaseRequestOptions, { useClass: CustomRequestOptions })
]);
但
它適用於GET請求,但不適用於POST請求 - POST中的基本URL未被觸及(瀏覽器將請求發送到JavaScript主機服務器而不是所需的http目標)。
如何在Angular 2中動態更改POST請求的基本URL地址?
試試這種方式
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;
var result = super.merge(options);
result.merge = this.merge;
return result;
}
}
和
bootstrap(AppComponent, [HTTP_PROVIDERS,
// < RC.4
provide(RequestOptions, { useClass: CustomRequestOptions }),
// >= RC.4
{ provide: RequestOptions, useClass: CustomRequestOptions }
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.