如何在ajax中创建自定义选项

时间:2017-09-19 19:16:59

标签: javascript jquery ajax

这是我的ajax

$.ajax(
{
   url: url,
   type: 'post',
   dataType: 'json',
   data: {'id':'1','name':'user'},
   success: function(result) {}
});

所以这里是ajax的基本设置,但我想在ajax中添加自定义选项showLoader。那我怎么能实现呢?

$.ajax(
{
   showLoader: true,
   url: url,
   type: 'post',
   dataType: 'json',
   data: {'id':'1','name':'user'},
   success: function(result) {}
});
当ajax请求停止时,

showLoader将在ajax请求开始和结束时调用。 在showLoader中,会有一个图像。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

服务类可以是这样的

var Services = function () {
    this.showLoader = true;

    this.post = function( route, param, callback, showLoader = true, successMessage = '', failCallback = null, errorMessage = '' )
    {
        this.showLoader = showLoader;

        $.post( route, param )
            .success(function(data){
                if( successMessage.trim().length ) {
                    //notify successMessage
                }

                // if to have callback function call than
                if( null != callback ) {
                    callback(data);
                }
            })
            .fail(function(error, status, type){
                if( null != failCallback ) {
                    //notify error callback if this exists
                }
            });
    };
}

然后实现执行ajaxStart的方法并在类中停止并在运行之前验证this.showLoader属性是true还是false。

因此,在您的代码中,您可以发送ajax请求,如:

var service = new Service();
service.post('/user/add', form.serialize(), function(){}, false, 'User added successfully!');

我建议您在页面加载器的开头使用javascript创建实例新Service(),以便每次需要发送ajax请求时都不需要创建新实例。

这是一种方法,现在让你自己实现!