【问题标题】:jQuery Mobile - AJAX JSONjQuery Mobile - AJAX JSON
【发布时间】: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


【解决方案1】:

当我启用 ajaxLinks 时,我曾经在新的 beta 版本中遇到过这个问题。如果我想为不在我的起始页上的元素添加代码,我无法使用

$(document).ready function.

我用过

$('#page').live('pageshow', function() ...

在 pagechange 中添加我的代码。因此,我想要添加 javascript 的元素当前已呈现。

希望这会有所帮助。

【讨论】:

  • 感谢您的回复,但我在提交表单或禁用自动 JQM ajaxFormsEnabled 功能时没有遇到问题。我无法从 ajax 调用中获取返回 json。
  • 您确定,ajax 调用已提交?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多