/ / JQuery Ajax chama apenas função predefinida - javascript, jquery, ajax

JQuery Ajax só chama a função predefinida - javascript, jquery, ajax

Eu tenho o seguinte método JQuery Ajax:

$.ajax({
type: "POST",
url: $(form).attr("action"),
data: formData,
dataType: "json",
success: function() {
$("#test").html("testing123");
},
});

Como está escrito, a função de sucesso não é acionada.

No entanto, se eu predefinir a função em outro lugar e a chamar assim:

success: testFunction()

OU

success: $("#test").html("testing123")

então funciona.

o que estou perdendo?

Respostas:

4 para resposta № 1

As soluções que você acha que está trabalhando são apenas ilusões disso. Na verdade, eles não estão sendo chamados success, mas quando você o declara. Isso me leva a pensar que sua chamada ajax não está retornando success.

A maneira correta de predefinir uma função e passá-la seria

success: testFunction

Se você fizer success: testFunction(), você está executando essa função imediatamente ao analisar o código e não quando o retorno de chamada do seu ajax é acionado. Este é o mesmo caso com

success: $("#test").html("testing123")

e é realmente equivalente se você ligou testFunction() logo após sua ligação ajax.