Aurelia http获取句柄错误

Aurelia http获取句柄错误,http,aurelia,Http,Aurelia,我有一个使用Aurelia创建的应用程序。我希望简化http响应 我有以下代码: @inject(HttpClient) export class Api { constructor(httpClient) { this.http = httpClient; this.http.configure(config => { config .withBaseUrl(window.sessionStorage.getItem('baseUrl'))

我有一个使用Aurelia创建的应用程序。我希望简化http响应

我有以下代码:

@inject(HttpClient)
export class Api {
  constructor(httpClient) {
    this.http = httpClient;
    this.http.configure(config => {
      config
        .withBaseUrl(window.sessionStorage.getItem('baseUrl'))
        .withDefaults({
          headers: {
            'Accept': 'application/json',
            'X-Requested-With': 'Fetch'
          }
        })
        .withInterceptor({
          request: handleRequest,
          response: handleResponse
        });
     })
  }

  get(url, params) {
    return this.http.fetch(url, {method: 'get', body: params});
  }

  post(url, params) {
    return this.http.fetch(url, {method: 'post', body: params});
  }
}

function handleResponse(response) {
  if (!response.ok) {
    thown {status: response.status, data: rsponse.json() };//this not works
  }
  return response.json();
}

function handleRequest(request) {
   let token = window.sessionStorage.getItem('token');
   if (token) {
     request.headers.append('Authorization', `bearer ${token}`);
   }
   return request;
 }
响应.ok
false
时,响应结果为:

Object { status: 422, data: Promise }

如何解决此问题?

假设您的问题是返回的对象中缺少数据,并且错误时返回了承诺,那么您需要等待json()返回的承诺首先得到解决。比如:

if(!response.ok){
response.json().then(数据=>{
返回{status:response.status,data:data};
}

}
假设您的问题是返回的对象中缺少数据,并且错误时返回了承诺,那么您需要等待json()返回的承诺首先得到解决。类似于:

if(!response.ok){
response.json().then(数据=>{
返回{status:response.status,data:data};
}
}