$http リクエストをラップする関数があり、成功すると関数が再度呼び出されます。Chrome と Firefox では完全に動作しますが、IE では最初のリクエストの後にそれ以上リクエストを送信しません。オンラインで検索し、ここでスタック オーバーフローを検索しましたが、同様の問題や解決策を持っている人は誰もいません
これらは私の機能です:
var poll = function () {
if (parseInt($scope.progress) < 100) {
temp = parseInt($scope.progress) + 1;
$scope.progressPolling();
}
}
$scope.progressPolling = function () {
alert("progressPolling " + i);
i++;
$http.get(url)
.success(function (data, status, headers, config) {
var percent = data.percentage;
alert("percent" + percentage);
if (parseInt($scope.progress) < 100) {
if (percent <= 100) {
$scope.progress = percent;
}
poll();
}
}).error(function (data, status, headers, config) {
alert("An Error Has Occured");
console.log("Error updating Progress: " + data);
});
成功のアラートは毎回発生しますが、最初のリクエストの結果と同じ結果になります. サーバーに行きません, サーバー側にブレークポイントを置いて確認しました. ブレークポイントは 1 回 (最初のリクエスト) ヒットしますが、2 回目または後続のリクエストではヒットしません。
私が言ったように、これはIEでのみ発生します(私の場合はIE9)
残念ながらIE9をサポートする必要があるため、これを解決する方法を見つける必要があります。ハックは何もしないよりはましですが、問題とそれを解決するための正しいアプローチを見つけたいと思います。アドバイスをいただければ幸いです