jQuery AJAX funciona en safari mobile, pero no es un UIWebView?

Tengo una function básica jQuery ajax para registrar al usuario a través de una UIWebView. Sin embargo, por alguna razón, vuelve en blanco cuando está en una UIWebView. Funciona bien en safari mobile, y Chrome y Firefox en mi computadora.

Aquí está mi código:

$("#login_button").live('click',function() { var serializeme = $("#login_form").serialize(); alert(serializeme); $.ajax({ type: "POST", url: "http://domain/location/process_login.php", data: serializeme, success: function(theRetrievedData) { var thePlace = theRetrievedData.indexOf("?!?success?!?"); if (thePlace != -1) { var theArray = theRetrievedData.split("?!?success?!?"); var theUrl = theArray[1]; $('#content').fadeOut(500); setTimeout( function() {window.location = theUrl;}, 500 ); } else { alert(theRetrievedData); alert("no bueno"); } } }); }); 

theRetrievedData simplemente devuelve el espacio en blanco en la alerta.

¡Por favor ayuda!

PD: la aplicación se llama "Dudles" en la tienda de aplicaciones (es gratis) si quieres intentar iniciar session. Recibirá un post en blanco de la alerta.

¿Puedes publicar tu código PHP también?

Refacturé el código que escribiste sobre cómo lo escribiría solo para ver si podía detectar cualquier error, y nada parecía estar mal. Esto es lo que tengo hasta ahora:

 $(document.body).on('click', '#login_button', function () { $.ajax({ type: "POST", url: "http://domain/location/process_login.php", data: $(this).closest('form').serialize(), success: function (response) { var delimiter = "?!?success?!?"; var isSuccessful = response.indexOf(delimiter) !== -1; if (!isSuccessful) { // handle error return; } $('#content').fadeOut(500, function () { location = response.split(delimiter)[1]; }); } }); }); 

intente enviar la request ajax con asíncrono: true, como este:

 $("#login_button").live('click',function() { var serializeme = $("#login_form").serialize(); alert(serializeme); $.ajax({ type: "POST", async:true, url: "http://domain/location/process_login.php", data: serializeme, success: function(theRetrievedData) { var thePlace = theRetrievedData.indexOf("?!?success?!?"); if (thePlace != -1) { var theArray = theRetrievedData.split("?!?success?!?"); var theUrl = theArray[1]; $('#content').fadeOut(500); setTimeout( function() {window.location = theUrl;}, 500 ); } else { alert(theRetrievedData); alert("no bueno"); } } }); });