Ajax Post之前发送功能不起作用

时间:2015-10-05 08:22:50

标签: jquery ajax

我不知道在发送功能之前怎么写 以下代码

$.post(
            "<?=URL?>filter-subcat.php",
             {
                service:service_arr,
                facility:facility_arr,
                product:product_arr,
                location:location_arr
             }, 
             function(data){
                var result = $('<div />').append(data).find('#result').html();

                $("#result1").html(result);
                $("#result1").addClass('active');
                $("#loader").html("");
                $("#shops").html(data);
             },
             function(beforeSend)
            {

                $(".modal_1").show();
                $(".fade_1").show();
            },
            function(complete){
                $(".modal_1").hide();
                $(".fade_1").hide();
            });

    });

3 个答案:

答案 0 :(得分:0)

您不能将beforeSend$.post()一起使用,而是可以使用.ajaxStart()/.ajaxComplete()方法,但这些方法应绑定到document而不是元素:

$(document).ajaxStart(function(){
     $(".modal_1, .fade_1").show();
}).ajaxComplete(function(){
     $(".modal_1, .fade_1").hide();
});

如果您想使用beforeSend,则必须使用$.ajax()

$.ajax({
    url:"",
    type:"",
    dataType:"",
    beforeSend:function(){},
    success:function(){},
    error:function(){},
    complete:function(){}
});

答案 1 :(得分:0)

您应该阅读Jquery文档:

http://api.jquery.com/jquery.post/

http://api.jquery.com/jquery.ajax/

如你所见,你必须使用$ .ajax()函数,实际上你的代码是两者兼而有之的错误

$.ajax( {
  method: "POST",
  url: "<?=URL?>filter-subcat.php",
  data: { 
        service:service_arr,
        facility:facility_arr,
        product:product_arr,
        location:location_arr
        },
  done:function(data){
      var result = $('<div />').append(data).find('#result').html();
      $("#result1").addClass('active').html(result);
      $("#loader").html("");
      $("#shops").html(data);
 },
 beforeSend:function(){
      $(".modal_1,.fade_1").show();
 },
 always:function() {
      $(".modal_1,.fade_1").hide();
 },
 error:function(jqXHR,textStatus,errorThrown){
    alert( "error" );
    console.log(jqXHR);
    console.log(textStatus);
    console.log(errorThrown);
}})

答案 2 :(得分:0)

使用以下格式

$.ajax({
                  beforeSend: function() { 
                                //code to execute before sending request
                  }, //Show spinner
                  complete: function() {
                   // code to execute after ajax completion 
                  },
                  url: url,
                  type: 'POST',
                  dataType: 'json',
                  headers: { //if any},
                  data: {},
                  success: function (data){ 

                  },
                  error : function (data){  
                  }
                });