Aurelia:配置获取客户端
Aurelia: configure fetch client
我使用 Aurelia 的抓取客户端与我的服务器通信。在每个使用获取客户端的 viewModel 中,我必须将其配置为客户端使用拦截器发送自定义 header(a token).
有没有办法在某个地方配置一次获取客户端,而不是在每个 viewModel 中重写拦截器代码。
您可以将配置放在 main.js 文件中。像这样:
...
aurelia.use
.standardConfiguration()
.developmentLogging();
let container = aurelia.container;
let http = new HttpClient();
http.configure(config => {
config
.useStandardConfiguration()
.withBaseUrl('http://localhost:8080/api/')
.withDefaults({
headers: {
'Authorization': tokenVariable // <---- your magic here
}
})
.withInterceptor({
request(request) {
console.log(`Requesting ${request.method} ${request.url}`);
return request;
},
response(response) {
console.log(`Received ${response.status} ${response.url}`);
}
});
});
container.registerInstance(HttpClient, http);
现在,您只需注入 HttpClient 即可获取上面配置的实例。
@inject(HttpClient)
export class MyViewModel {
}
更多信息请见https://github.com/aurelia/fetch-client/blob/master/doc/article/en-US/http-services.md
我使用 Aurelia 的抓取客户端与我的服务器通信。在每个使用获取客户端的 viewModel 中,我必须将其配置为客户端使用拦截器发送自定义 header(a token).
有没有办法在某个地方配置一次获取客户端,而不是在每个 viewModel 中重写拦截器代码。
您可以将配置放在 main.js 文件中。像这样:
...
aurelia.use
.standardConfiguration()
.developmentLogging();
let container = aurelia.container;
let http = new HttpClient();
http.configure(config => {
config
.useStandardConfiguration()
.withBaseUrl('http://localhost:8080/api/')
.withDefaults({
headers: {
'Authorization': tokenVariable // <---- your magic here
}
})
.withInterceptor({
request(request) {
console.log(`Requesting ${request.method} ${request.url}`);
return request;
},
response(response) {
console.log(`Received ${response.status} ${response.url}`);
}
});
});
container.registerInstance(HttpClient, http);
现在,您只需注入 HttpClient 即可获取上面配置的实例。
@inject(HttpClient)
export class MyViewModel {
}
更多信息请见https://github.com/aurelia/fetch-client/blob/master/doc/article/en-US/http-services.md