Ich habe einige Probleme mit der Ajax-Fehlerfunktion, die aufgerufen wird, während das Skript eine Weile dauert, zu laden. Aber ich konnte es beheben, indem ich async: false
hinzufüge.
Z. B:
$.ajax({
type: 'POST',
url: REQUEST_URL,
async: false,
data: {
'id': id
},
dataType: 'json',
success: function(output) {
// success
},
error: function() {
alert('Error, please refresh the page');
}
});
Wenn Sie die Dokumentation zu lesen steht:
Standardmäßig werden alle Anfragen asynchron gesendet (das heißt, dies zu true per Default eingestellt ist). Wenn Sie synchrone Anforderungen benötigen, setzen Sie diese Option auf false. Domänenübergreifende Anfragen und dataType: "jsonp" -Anforderungen unterstützen nicht synchronen Betrieb. Beachten Sie, dass synchrone Anfragen den Browser temporär sperren können und alle Aktionen deaktivieren, während die Anfrage aktiv ist. Ab jQuery 1.8 ist die Verwendung von async: false mit jqXHR ($ .Deferred) veraltet; Sie müssen die vollständigen/success/error Rückrufe verwenden.
Q) Was ist der letzte Teil über jqXHR bedeuten ($ .Deferred)? Beeinflusst das mein Skript?
danke, wollte nur sicherstellen, dass mein Code in zukünftigen jquery nicht brechen würde –