Em meu projeto, tenho várias páginas e em muitas delas tenho essa chamada Ajax, onde mudo apenas a url e o que pode acontecer com o retorno (data).
$(function(){
$("form").submit(function(e){
e.preventDefault();
$.ajax({
url: "/paginaA",
data: $(this).serialize(),
type: 'post',
error: function(XMLHttpRequest, textStatus, errorThrown){
....
},
success: function(data){
....
}
});
});
});
Pensando nisso… tentei fazer um plugin JQuery, e fiz assim:
(function( $ ) {
$.fn.myAjax = function(url, options) {
var settings = $.extend({
'form' : 'form',
'msg' : 'Salvando as informa\u00e7\u00f5es',
'msgSuccess' : 'Salvando as informa\u00e7\u00f5es',
'func' : function(){},
'method' : 'post'
}, options);
$(settings.form).submit(function(e){
e.preventDefault();
$.ajax({
url: url,
data: $(this).serialize(),
type: settings.method,
error: function(XMLHttpRequest, textStatus, errorThrown){
....
},
success: function(data){
....
}
});
});
};
}( jQuery ));
Para usar esse plugin, faço:
<script type="text/javascript">
$(function(){
$.fn.myAjax("/PaginaQQ",{
'msg' : 'Verificando seus dados de acesso',
'msgSuccess' : 'Autenticado com sucesso, aguarde o redirecionameto',
'func': function(){
window.location.href="/OutraPageQQ";
}
});
});
</script>
Funciona! Mas tenho limitações que não consigo resolver. Por exemplo, nas paginas que utilizo o plugin eu não consigo usar os valores de data que vem como retorno em Success na chamada Ajax. Isso me derruba.
Como posso resolver essa limitação?