Aurelia:配置获取客户端

我使用Aurelia的fetch客户端与我的服务器进行通信.在使用fetch客户端的每个viewModel中,我必须将客户端配置为使用拦截器发送自定义头(令牌).

有没有办法在某个地方配置一次获取客户端,而不是在每个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:配置获取客户端 - 代码日志