我正在使用jQuery3.x.x。如jquery 3.x.x发行说明中所述,方法成功,完成,错误均被删除。我在jquery 3.x.x ajax中使用成功函数。我的成功功能运行正常,而不是在控制台中记录错误。以供参考
https://jquery.com/upgrade-guide/3.0/#breaking-change-special-case-deferred-methods-removed-from-jquery-ajax
我的代码在这里:
<script src="jquery-3.3.1.js"></script>
<script>
$(document).ready(function() {
$('#userName').click(function() {
$.ajax({
url : 'JqueryTest',
data : {
userName : $('#userName').val()
},
success : function(responseText) {
alert(responseText);
$('#ajaxGetUserServletResponse').text(responseText);
}
});
});
});
</script>
最后,成功功能在这里起作用,相反,它应该在控制台中记录错误。
答案 0 :(得分:1)
您会混淆两个具有相同名称的事物。
您在问题中链接的https://dotnet.microsoft.com/download/dotnet-framework说:
请注意,这对ajax回调根本没有任何影响 通过options对象传递的同名对象,该对象继续 存在并且不被弃用。这只会影响jqXHR方法。
写作时
$.ajax({
...
success : function(responseText) {
}
});
在您的代码中,这是通过以上引用中的$.ajax()
选项指定的回调。如引文所述,这些选项尚未删除或弃用,并且将继续起作用。重要的是要注意,在此示例中,success
是 option 的名称,而不是 function 的名称。您提供的功能是匿名的。
已删除的函数是属于jQuery Deferred
对象类的那些-这是$ajax()
返回的对象的类型。
例如,如果您的代码包含以下内容:
var deferredResponse = $.ajax({
url: "http://www.example.com",
method: "GET"
});
deferredResponse.success(function(response) {
console.log(response);
});
...然后,“成功”功能在jQuery 3.0中将不再起作用。
您可以参考article来查看传递给$.ajax()
的当前有效选项,也可以参考https://api.jquery.com/jQuery.ajax/来查看Deferred
对象上当前可用的方法
答案 1 :(得分:0)
从jQuery 3.0开始,success
,error
和complete
已被删除并替换为done
,fail
和always
,例如所以:
$.ajax( "example.php" )
.done(function() {
alert( "success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "complete" );
});