这两个AJAX请求语法之间有什么区别?

时间:2017-10-03 14:49:18

标签: javascript jquery ajax

以下两个来电之间有区别吗?

    $.ajax({
        type: 'POST',
        url: someApiUrl,
        contentType: 'application/json; charset=utf-8',
        data: someData
    }).success(function (payload, status, xhr) {
        //success code
    });
    $.ajax({
        type: 'POST',
        url: someApiUrl,
        contentType: 'application/json; charset=utf-8',
        data: someData,
        success: function (payload, status, xhr) {
            //success code
        }
    });

如果是这样,每个人有哪些优点/缺点?

如果有更好的方法来提出这个问题,可以获得积分。也许这些技术有名字?

2 个答案:

答案 0 :(得分:4)

如上所述,它们完全相同。通过小的改动,第一个可以优于第二个。即:

var $eventualResult = $.ajax({
    type: 'POST',
    url: someApiUrl,
    contentType: 'application/json; charset=utf-8',
    data: someData
});

现在结果是,您可以传递它,从函数返回它,在不同的上下文中使用它:

$eventualResult.then(function (result) { /* uses the result */ });

// meanwhile, elsewhere in the codebase...

$eventualResult.then(function (result) { /* do something else */ });

使用$.ajax构造函数的回调参数没有此属性。

答案 1 :(得分:1)

第一个实例化AJAX调用,然后向其附加成功事件

第二个显示成功回调方法作为AJAX调用的构造函数

的参数

第二个是优越的(在我看来)因为阅读它的开发者的意图更清楚