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 № 1As 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.