Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这两个jQueryAjax调用之间的主要功能区别是什么?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 这两个jQueryAjax调用之间的主要功能区别是什么?

Javascript 这两个jQueryAjax调用之间的主要功能区别是什么?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我见过这两种ajax调用,它们之间的主要功能区别是什么 $.ajax({ url: '', type: 'post', data: {}, success: function (data) { alert(data); } }); 及 第一个方法向ajax方法添加一个成功回调 第二个将成功回调添加到promise接口,该接口返回$.ajax 实际上,我不认为在延迟对象上有成功方法,$.ajax返回(可能在旧版本中有遗留),它应该根据以下规

我见过这两种ajax调用,它们之间的主要功能区别是什么

$.ajax({
    url: '',
    type: 'post',
    data: {},
    success: function (data) {
        alert(data);
    }
});


第一个方法向ajax方法添加一个成功回调

第二个将成功回调添加到promise接口,该接口返回
$.ajax

实际上,我不认为在延迟对象上有
成功
方法,
$.ajax
返回(可能在旧版本中有遗留),它应该根据以下规则
完成:


这两个片段之间没有区别。即使您在内部使用选项属性
success
,它也会被添加到ajax请求的承诺回调列表中


如果您查看附加的图像,您可以看到传递给
success
error
complete
的值被传递回jqXHR对象的回调方法

第一个是ok,第二个是ok,但不推荐使用,使用.done()callback代替headPromise接口公开success方法,但不推荐使用它作为旁注,ajax()不会返回延迟对象,而是像您首先声明的那样返回承诺接口。区别在于promise接口是只读的,您无法解析/拒绝itI,因为从调用堆栈中看不出这两个接口之间有任何区别,因为它们似乎都在使用延迟框架。看看
$.ajax({
    url: '',
    type: 'post',
    data: {}
}).success( function (data) {
    alert(data);
});
$.ajax({
    url: '',
    type: 'post',
    data: {}
}).done( function (data) {
    alert(data);
});