gpt4 book ai didi

typescript - 如何为 Ionic 2 中的所有请求设置默认的 Http header ?

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:40 25 4
gpt4 key购买 nike

我搜索了如何在所有请求中设置默认 Http header ,我发现了如何使用 bootstrap 函数在 Angular 2 中实现,但它在 Ionic 2 中不可用,如本文所述问题 How to set default HTTP header in Angular2? .

我想将 Content-Type header 设置为 application/json 而不是在每个请求中设置它

我一直在尝试覆盖 BaseRequestOptions 并将它们注入(inject)我的应用程序,但我无法覆盖它们。

app.ts

...
import {BaseRequestOptions, Headers, HTTP_PROVIDERS, Http, RequestOptions} from '@angular/http';

@Injectable()
export class MyRequestOptions extends BaseRequestOptions{
headers:Headers = new Headers({
'Content-Type': 'application/json; charset=UTF-8'
});
}

@App({
template: '<ion-nav [root]="rootPage"></ion-nav>',
config: {},
providers: [HTTP_PROVIDERS, MyRequestOptions]
})
export class MyApp {
rootPage: any = HomePage;

constructor(platform: Platform) {
// init
}
}

myService.ts

import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';

@Injectable()
export class MyService {
constructor(private http: Http) {
}

getUser(id) {
return this.http.post('/api/User/Get/', JSON.stringify({ id: id }));
}
}

我遗漏了什么,我是不是用错了 providers 注入(inject)?

最佳答案

您没有正确注册 MyRequestOptions:

import { provide } from '@angular/core';
import { HTTP_PROVIDERS, RequestOptions, BaseRequestOptions, Headers } from '@angular/http';

...
@App({
template: '<ion-nav [root]="rootPage"></ion-nav>',
config: {},
providers: [HTTP_PROVIDERS, provide(RequestOptions, { useClass: MyRequestOptions })]
})

或者你可以尝试像这样通过 map 文字注册提供者:

{ provide: RequestOptions, useClass: MyRequestOptions }

关于typescript - 如何为 Ionic 2 中的所有请求设置默认的 Http header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37632928/

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