JQuery Plugin para chamadas Ajax

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?

Você pode passar o ‘data’ como argumento para a sua função.

Algo como:

success: function(data) {
  settings.func(data);
}

e na hora de usar algo assim:

'func': function(data) {
  console.log(data);
  window.location.href="/OutraPageQQ";
}