0

$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をサポートする必要があるため、これを解決する方法を見つける必要があります。ハックは何もしないよりはましですが、問題とそれを解決するための正しいアプローチを見つけたいと思います。アドバイスをいただければ幸いです

4

1 に答える 1