2017-10-30 1 views
1

I-Code haben, dieses Skript in der Schleife Anfragen senden:Wie Fangstatus nach Anforderung abgelehnt?

function parse() { 
    $.post("meth.php", { 
     proxy: $proxy, 
     time: (new Date().getTime()) 
    }, function(data) { 
     return setTimeout(function() {parse()}, 5000); 
    }, "json"); 
} 

Aber einige Male Server Sendestatus falied und ich brauche, um diesen Fehler zu ignorieren und neue Anforderung senden

Ich versuche:

function parse() { 
    try{ 
    $.post("meth.php", { 
     proxy: $proxy, 
     time: (new Date().getTime()) 
    }, function(data) { 
     return setTimeout(function() {parse()}, 5000); 
    }, "json"); 
    } catch (err) { 
     return setTimeout(function() {parse()}, 5000); 
    } 
} 

Aber diese Konstruktion hat nicht funktioniert, bitte helfen Sie

+0

Verwendung '$ .ajax' nicht' $ .post' – bassxzero

+0

können Sie $ Schnipsel verwenden, die für den Umgang mit jqxhr bezogener Fehler mit dem Status einer Eigenschaft 'error' hat – Niladri

+0

ich versuche, Ajax mit Fehler wurden aber Duplikate erstellt und parallel startet Arbeit 2 oder 3 Funktion post() – user3272368

Antwort

0

Was Sie getan haben, funktioniert nicht, weil es keinen Fehler wenn t wirft Die Ajax-Anfrage schlägt fehl. Das sehen Sie, wenn Sie sich die Dokumentation in jQuery für Ajax ansehen. Sie würden Fehler oder Fehler für das Ereignis basierend darauf verwenden, wie Sie es tun.

Oder Sie können immer ein Versprechen verwenden, das für Erfolg und Misserfolg ausgelöst wird.

var activeTimer; 
function foo() { 
    if (activeTimer) window.clearTimeout(activeTimer) 
    $.ajax({ 
     method: "POST", 
     url: "some.php", 
     data: { } 
    }).always(function() { 
     activeTimer = window.setTimeout(foo, 5000) 
    }); 
} 
Verwandte Themen