Jquery ajax post no funciona en iPhone y Android

Estoy creando una aplicación web dirigida a dispositivos móviles (específicamente iPhone y Android). Lo estoy construyendo usando ASP.NET MVC y JQuery. En una página tengo un menú desplegable en cascada. He conectado una función en el evento de cambio para el primer menú desplegable que hace una llamada AJAX y usa la respuesta JSON para completar el segundo menú desplegable. Todo esto funciona bien en mi escritorio, pero no funciona desde un teléfono iPhone o Android. El segundo desplegable no está poblado. Puse una “alerta” en la función de cambio y verificó que el evento se está activando. Luego coloqué la “alerta” en la función de callback para la llamada AJAX y no se ejecutó, por lo que la llamada AJAX no está afectando al servidor o la respuesta no está siendo recibida por el teléfono.

El código jQuery es:

$(function () { $("#ProgramId").change(function () { var programId = $("#ProgramId").attr("value"); alert("Change event triggered"); // <- test only, does get executed when client is a phone bowser var termId = $("#TermId").attr("value"); $.post("/DealerHome/Terms", { "ProgramId": programId }, function (data) { alert("Ajax response received"); // <- test only, does NOT get executed when client is a phone bowser $("#TermId").children().remove(); $("#TermId").append('--select--'); $.each(data, function () { if (termId == this.Value) { $("#TermId").append('' + this.Text + ''); } else { $("#TermId").append('' + this.Text + ''); } }); }); }); }); 

He activado la Consola de JavaScript en el iPhone, pero no muestra ningún error. Al ser nuevo en el desarrollo para dispositivos móviles, no estoy seguro de cómo debería depurar esto. En el escritorio, solo usaría Fiddler para ver qué sucede en el cable. Cualquier ayuda es muy apreciada.

Aclamaciones

Craig

Resolví el problema y solo lo publico en caso de que otros encuentren el mismo problema. Todo se reduce a que yo haga lo mismo que odio, y eso son cadenas codificadas. En el caso de esto, la línea ofensiva es la url AJAX en su función posterior. Está codificado en la raíz del sitio web, pero cuando se implementó (que era como lo estaba probando en un dispositivo móvil), la ruta cambió.

Para corregir esto, he reemplazado la línea de publicación anterior con:

 $.post('@Url.Content("~/DealerHome/Terms")' , { "ProgramId": programId }, 

Url.Content garantiza que se use la ruta relativa correcta para la url.