AngularJS $ http.get выполняет PHP для удаления файла. IE все еще находит файл после удаления?

Это только в Internet Explorer.

У меня есть фабрика, которая предоставляет уведомления для моего приложения.
Входными данными для этих уведомлений является файл (qc.sta), который автоматически создается сторонним программным обеспечением и помещается в определенную папку.

Когда этот файл существует, в приложение добавляется новое уведомление.
Мой механизм должен был бы получить данные из этого файла qc.sta и затем удалить их после сбора данных.

Чтобы удалить файл, мне нужно выполнить PHP, который удаляет файл, но, похоже, это нужно сделать внутри $ http.get, поэтому я получаю $ http.get внутри другого $ http.get.

Что происходит, так это то, что уведомления (запускаемые через $ интервал внутри контроллера) продолжают появляться постоянно, несмотря на удаление файла.

Моя фабрика, как показано ниже:

myApp.factory("qcSTA", function ($http, $q) {
return {
apiPath: "data/qc.sta?rnd=" + new Date().getTime(), //randomizing request to prevent caching
getNotifications: function () {
//Creating a deferred object
var deferred = $q.defer();
//Calling Web API to fetch notifications
$http.get(this.apiPath, { headers: { 'Cache-Control': 'no-cache'} })
.success(function (response) {
//Passing data to deferred's resolve function on successful completion
//Does whatever needs to be done to the response before passing it on
function deleteFile() {
$http.get("deleteFile.php");
return false
};
deleteFile();
deferred.resolve(JSON.parse('{"item" : "' + response.itemNumber + '", "description" : "' + response.desc + '"}'));
})
.error(function () {
//Sending a friendly error message in case of failure
deferred.reject("An error occured while fetching items");
});
//Returning the promise object
return deferred.promise;
}
}
});

И мой контроллер:

myApp.controller("notificationController", function ($scope, $location, $interval, $q, qcSTA) {
function getNotifications() {
qcSTA.getNotifications()
.then(function (data) {
$scope.notifications.push(data);
},
function (errorMessage) {
$scope.error = errorMessage
});
}
}

Как я могу убедиться, что уведомление появляется только один раз, а не по кругу?
Может ли это быть связано с кешем?
Если я обновлю браузер, он не получит больше уведомлений, как будто он наконец обнаружит, что файла qc.sta больше нет.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]