如何使用$ .ajax()中的更多选项扩展$ .post()

时间:2013-03-01 12:05:37

标签: jquery ajax http-post extend

是否可以扩展jQuery的$.post()辅助函数的属性和选项。

我有时需要向$.post()添加更多属性,例如async, beforeSend, contentType, context, crossDomain, error, global, headers, ifModified, mimeType, timeout, etc,但我会使用$.ajax(),因为我太习惯使用$.post(),因为我习惯。


编辑:是否可以覆盖/覆盖整个帮助程序插件/函数?

1 个答案:

答案 0 :(得分:1)

这是函数添加自己的参数,它也会更新get方法。但正如你可以清楚地看到它只是包装$ .ajax

(直接来自jQuery源代码)

jQuery.each( [ "get", "post" ], function( i, method ) {
    jQuery[ method ] = function( url, data, callback, type ) {
        // shift arguments if data argument was omitted
        if ( jQuery.isFunction( data ) ) {
            type = type || callback;
            callback = data;
            data = undefined;
        }

        return jQuery.ajax({
            type: method,
            url: url,
            data: data,
            success: callback,
            dataType: type
        });
    };
});

编辑 - 修改后的代码示例所有参数都是必需的

jQuery.each( [ "myPost" ], function( i, method ) {
    jQuery[ method ] = function( url, data, callback, type, errorCallback ) {
        return jQuery.ajax({
            type: method,
            url: url,
            data: data,
            success: callback,
            dataType: type,
            error: errorCallback
        });
    };
});