Jquery ajaxpost不适用于iPhone和Android

我正在构建一个面向移动设备(特别是iPhone和Android)的Web应用程序。 我正在使用ASP.NET MVC和JQuery构建它。 在一个页面上,我有一个级联下拉列表。 我在第一个下拉列表的连接事件上连接了一个函数,它执行了一个AJAX调用并使用JSON响应来填充第二个下拉列表。 这一切都可以在我的桌面上正常工作,但无法在iPhone或Android手机上运行。 第二个下拉列表未填充。 我在更改function中放置了“警报”,并确认事件正在被触发。 然后我在AJAX调用的回调函数中放置了“alert”并且没有执行,因此AJAX调用没有命中服务器,或者电话没有收到响应。

jQuery代码是:

$(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 + ''); } }); }); }); }); 

我在iPhone上启用了JavaScript控制台,但它没有显示任何错误。 作为移动设备开发的新手,我不知道应该如何调试它。 在桌面上,我只会使用Fiddler来查看线路上发生的事情。 任何帮助都非常感激。

干杯

克雷格

我已经解决了这个问题,我只是发布它以防其他人遇到同样的问题。 这归结于我做了我讨厌的事情,那就是硬编码的字符串。 在这种情况下,违规行是hte post函数中的AJAX url。 它被硬编码到网站的根目录,但是当部署时(这是我在移动设备上测试的方式),路径发生了变化。

为了解决这个问题,我已将上面的post替换为:

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

Url.Content确保为url使用正确的相对路径。