Ich habe einen POST-Dienst im Back-End, der einen leeren Antworttext zurückgibt.Promise-Rückruf bei Jquery wird nie ausgeführt, wenn leere Antwort
Ich nenne den Dienst mit einem Ajax-Aufruf von jquery wie diese, die ein Versprechen zurück:
return $.when($.ajax({
type: 'POST',
url: url,
beforeSend: (xhr) => {
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8')
},
data: data,
dataType: 'json',
crossDomain: true
}))
Dann Aufruf der Methode:
myMethod(params).done(
(response) => {
console.log(response)
}
)
So ist die Ajax-Aufruf gemacht wird, jedoch die done wird nie ausgeführt. Wenn der Server im Antworttext etwas zurückgibt, funktioniert es.
Nicht sicher, was ich vermisse.
Sie brauchen '$ .when' nicht. Gib '$ .ajax (..) 'selbst zurück. – hindmost
Sind Sie sicher, dass es kein 'fail()' zurückgibt? Vielleicht willst du '.always()'? – Liam
Hinterm Ich möchte ein Versprechen. @Liam, könnte scheitern, aber getan, ist nicht das gleiche wie immer? – Pablo