Timeout funktioniert nicht im ajax-post-request
Ich bin nicht in der Lage, ajax-error-callback-Funktion nach 3 Sekunden ab. Ich habe versucht, mit timeout, aber es schaltet sich nicht um Fehler-callback-nach der angegebenen Zeit! Ich bin nicht in der Lage, die Warnung Got timeout
.
Wenn ich bezog mich ähnliche Fragen, die in dieser Website mit ähnlichen Problemen hat es nicht geholfen. Sie alle nutzen ajax-GET-Typ. Ich bin mit jquery 1.10.1 Bibliothek.
Skript :
$.ajax({
type: 'POST',
timeout: 3000,
url : "http://mydomain/Services.asmx/Best_Scores",
dataType: "text",
async:false,
crossDomain:true,
data: "strJsonRequest="+scoredata,
success: function (data) {
//Success code ...
},
error: function (data, textStatus, errorThrown) {
if(textStatus == "timeout") {
alert("Got timeout");
}
}
});
Jede Lösung ?
- Wie lange dauert die RTT nehmen zu
http://mydomain/Services.asmx/Best_Scores
? Vielleicht ist die url einfach nicht die Zeit aus? - Danke für die Antwort, ich werde 15-20 Sekunden in Anspruch nehmen !
- Haben Sie versucht, zu warnen, etwas in die error-Funktion, die nicht in der if-Anweisung? Vielleicht
textStatus
ist nicht "timeout"?!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update :
Ändern
async : false
zuasync: true
Grund :
Einer synchronen AJAX-Aufruf blockiert, bis die Anfrage beendet wurde. Die Implementierung eines timeout ist aus technischen Gründen nicht möglich, da der AJAX-Aufruf erfolgt später.
Wenn Sie einen AJAX-Aufruf ausgeführt wird später die Funktion irgendwie zu implementieren hat eine blockierende Funktion, um halt den code ausgeführt, weiter nach dem AJAX-Aufruf, und führen Sie es wieder nach einer Zeitüberschreitung nicht möglich.
Heute (im Jahr 2019) ich habe immer noch das problem.
Habe ich einen ajax-Aufruf zu lange (abhängig von Datum, Start-> Datum Ende) ein php-Skript.
und nach einigen Minuten bekomme ich einen Fehler 500, async: true, helfen nicht.
Wird der Anruf:
Ich gelöst mit:
Seite PHP:
am Anfang des Skripts.
in der Mitte des Skript (zum Beispiel in der main-Schleife jeden Tag). Diese helfen zu lassen-client nicht trennen (ich denke das ist das Hauptproblem).
Nutzung dieser ich ständig schreiben, Leerzeichen vor der letzten json.
Zum Glück jquery trim Leerzeichen vor zum Parsen der json-und am Ende der json gültig ist.
So kann ich catch-response-Objekt, um zu wissen, wenn das script beendet mit Fehler-oder Warnmeldungen.
Ich Hoffe, dies hilft jemand.