Я хочу прекратить кэширование моего запроса и ответа API, который плагин native-http сохранил в своем кэше и создает проблему с моим приложением.
Постоянный API работает нормально, но когда я получаю ошибку 404 или 401 отсервер, который будет кешировать его в моем приложении, а затем через все время я получу сообщение об ошибке тайм-аута с состоянием 1.
Чтобы преодолеть эту проблему, мне нужно удалить приложение и переустановить его снова будет работать, как ожидалось.
Любая идея Как прекратить кэширование HTTP-запроса и ответа?
Или как решить проблему тайм-аута с состоянием 1?
Я пробовал что-то ниже в моем заголовке запроса, новсе еще безуспешно.
self.httpPlugin.setHeader('*', 'authorization', 'Bearer ' + token);
self.httpPlugin.setHeader('*', 'Cache-control', 'no-cache');
self.httpPlugin.setHeader('*', 'Cache-control', 'no-store');
self.httpPlugin.setHeader('*', 'Expires', '0');
self.httpPlugin.setHeader('*', 'Pragma', 'no-cache');
Также добавил в мой запрос фиктивный уникальный параметр, чтобы сделать уникальный запрос моего вызова API, как показано ниже.
self.httpPlugin.setHeader('*', 'ExtraDate', new Date().toString());
Любой, кто сталкивался с такой проблемой в Ionic3?
Попробовал эту ветку предложений, но совсем не повезло.
Предложите какое-либо решение для этой проблемы.
** Редактировать: **
Полный код запроса:
/**
* Get Search result from server.
*/
getCaseListBySearchText(searchText: string): Observable<any> {
let self = this;
return Observable.create(function(observer) {
self.getToken().then(token => {
console.log("Token : ", token);
// let rand = Math.random();
self.httpPlugin.setHeader("*", "authorization", "Bearer " + token);
self.httpPlugin.setHeader("*", "Cache-control", "no-cache");
self.httpPlugin.setHeader("*", "Cache-control", "no-store");
// self.httpPlugin.setHeader("*", "Expires", "0");
self.httpPlugin.setHeader("*", "Cache-control", "max-age=0");
self.httpPlugin.setHeader("*", "Pragma", "no-cache");
self.httpPlugin.setHeader("*", "ExtraDate", new Date().toString());
self.httpPlugin
.get(self.url + "/CaseList?caseNum=" + searchText, {}, {})
.then(response => {
console.log("Response Success : " + JSON.stringify(response));
let jsonResponse = JSON.parse(response.data);
console.log("JSON OBJECT RESPONSE : " + jsonResponse);
observer.next(jsonResponse);
})
.catch(error => {
if (error.status == 403) {
console.log("Token expired : " + JSON.stringify(error));
self.isTokenExpired = true;
//Removing Old Token
self.storage.remove(Constants.AUTH_DATA);
observer.error(error);
} else {
console.log("Error : " + error);
console.log("Error " + JSON.stringify(error));
observer.error(error);
}
});
})
.catch(error => {
console.log("Error : " + error);
observer.error(error);
});
});
}