【发布时间】:2011-12-15 11:22:40
【问题描述】:
我无法弄清楚为什么 jQuery Mobile 不会在 AJAX 调用中处理我的 json 返回。它在任何网络浏览器中都可以正常工作,但在我的手机(android)上却不行。该脚本只是挂起,它甚至不会选择成功函数中的任何一个 if 语句选项。
$('#loginSubmit').click(function() {
$.mobile.showPageLoadingMsg();
$.ajax({
type: "POST",
url: "/include/login.php",
data: $('#loginForm').serialize(),
cache: false,
dataType: "json",
success: function (json) {
if(json && json.error != '') {
//alert(json.error);
$.mobile.hidePageLoadingMsg();
} else {
$.mobile.changePage('/mobile/cp/', { transition: "slide" });
$.mobile.hidePageLoadingMsg();
}
}
});
return false;
});
【问题讨论】:
-
我认为这段代码是在解析 DOM 之后执行的? (即,您使用 $(document).ready() 或 $())
-
我都试过了。我什至也尝试将 mobileinit 绑定到文档。我已经在浏览器的这个示例中成功使用了 jQuery 的所有 $.post、$.get、$.ajax 和 $.getJSON 函数。一旦我在手机上尝试过,就不要使用 json。但是手机会正确返回 datatype:"text"
-
你检查过ajax post是否成功吗?在我看来,它以某种方式失败了。例如,JSON 是否有效? jsonlint.com
标签: json jquery mobile jquery-mobile