jQuery(.Mobile)在Android浏览器中无法正常触发

时间:2012-03-12 19:02:47

标签: jquery ajax jquery-mobile

jQuery代码:

$.ajaxSetup({ cache: false });
$('#stid_status_msg').hide();
$('.SpeedTestId').blur(function(e) {
    e.preventDefault();
    var stid = $('.SpeedTestId').val();
    var postString = 'stid=' + stid;
/*  $.ajax({
        cache: false,
        url:"inc/check_stid.inc.php", 
        type:'POST',
        data:postString,
        success:function(msg) {
            $('#stid_status_msg').html(msg);
            $('#stid_status_msg').show();
        },
        error:function(error) {
            $('#stid_status_msg').html('<font color="red">Error submitting results!' + error + '</font>');
            $('#stid_status_msg').show();
        }
    });*/
    $.get("inc/check_stid.inc.php", { stid: stid }, function(msg) {
            $('#stid_status_msg').html(msg);
            $('#stid_status_msg').show();
    });
});

注释掉的$.ajax()方法是我最初尝试的方法,但很快发现$.get()是我尝试做的更好的方法。但无论我使用哪种方法,代码在桌面浏览器(FF,IE,Chrome)中运行良好,但在Android浏览器中无法成功完成。

当我使用$.ajax()时,我在Android浏览器中进行测试时,它首先挂起几秒钟,然后错误回调触发,我得到:

提交结果时出错! [对象] [对象]

我还应该注意,当我在Android浏览器中启用java控制台时,它并不表示JS有任何错误。

因此,我发现脚本由于某种原因无法找到/加载inc/check_stid.inc.php。但为什么只能在Android浏览器中使用?

显然我是一个jQuery新手,我很欣赏你们可以提供的任何见解。

修改

我在我的android上安装了FF,代码在那里工作正常。无论我遇到什么都是特定于Android浏览器。很奇怪!

1 个答案:

答案 0 :(得分:0)

jQuery AJAX请求的error回调将传递以下参数:

  1. jqXHR:与AJAX请求关联的XHR对象
  2. textStatus:字符串错误消息
  3. errorThrown:包含错误特定信息的对象
  4. 您正在尝试输出jqXHR,就好像它是一个字符串,而不是一个对象(就像它一样)。要获得有意义的错误消息,请尝试以下操作:

        error:function(jqXHR, textStatus, errorThrown) {
    
            //only log the objects if the current browser has a console.log function
            if (typeof console == 'object' && typeof console.log == 'function') { console.log(jqXHR); console.log(errorThrown); }
    
            $('#stid_status_msg').html('<font color="red">Error submitting results!' + textStatus + '</font>').show();
        }
    

    $.ajax()的文档:http://api.jquery.com/jquery.ajax/