Aurelia http获取句柄错误
我有一个使用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'))
@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};
}
}