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浏览器。很奇怪!
答案 0 :(得分:0)
jQuery AJAX请求的error
回调将传递以下参数:
jqXHR
:与AJAX请求关联的XHR对象textStatus
:字符串错误消息errorThrown
:包含错误特定信息的对象您正在尝试输出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/