作为Progressive-Enhancement的忠实粉丝,我使用Modernizr来测试浏览器功能。 如何使用Modernizr测试浏览器对AJAX的支持(特别是jQuery的AJAX函数)?
答案 0 :(得分:8)
你不需要Modernizer来测试它,jQuery内置了它。
if (jQuery.support.ajax) {
alert("Ajax is supported!");
}
虽然我不确定jQuery如何在不支持时处理$.ajax
调用。它将以静默方式失败,或触发错误回调。如果它对你很重要,你应该测试它。
答案 1 :(得分:3)
为了它的价值,我已经向Modernizr添加了问题#734,为AJAX添加了一个测试,developed the test,创建了一个JSFiddle to test, er, the test ...和initiated a pull-request (issue #735)回到了优秀人群谁维护Modernizr。
相关的JS:
Modernizr.addTest('ajax', function() {
var xhr = new XMLHttpRequest();
return !!('onreadystatechange' in xhr);
});
答案 2 :(得分:1)
可能与问题相关,也可能不相关,但您可以使用jquery ajax的异常处理。要回答Kevin B.的问题而没有任何异常处理,它将无声地失败(回调将不返回任何内容)。因此,如果您希望它显示任何使用异常处理。
简短的例子:
$.ajax({
type: "POST",
url: "ajax_page.php",
success: function(data, status, xhr) {
// perform operations on success
alert('Success');
},
error: function(xhr, status, error) {
// perform operations on error
alert(xhr.responseText);
}
});