通过Ajax成功函数传递参数

时间:2017-06-24 14:28:27

标签: javascript jquery html ajax

我有一个ajax功能:

function abc(url){    
$.ajax({
                url:'/account/search',
                type:'GET',
                success:update(url),
                error:function(error){
                    console.log(error);
                }
            });
}

成功时,有一个要更新的函数调用:

   function update(response,url){
            list = response.data;
            var i=0;
            var q = list.length;
}

但它会抛出错误:无法在控制台中读取未定义的属性“长度”。

由于更新功能已经从另一个文件接收数据,该文件位于参数响应中,因此我无法将其删除。

请提供建议如何正确地将参数(即本例中的“url”)传递给AJAX调用的更新函数。

谢谢

3 个答案:

答案 0 :(得分:7)

你需要另一个功能。 success回调本身只收到一个参数:AJAX响应。如果你需要第二个,你需要在它们之间进行函数调用。

function abc(url){    
  $.ajax({
                url:'/account/search',
                type:'GET',
                success: function(data){ update(data, url); },
                error:function(error){
                    console.log(error);
                }
            });
}

答案 1 :(得分:0)

试试这个 不要成功传递任何参数

function abc(url)
{    
  $.ajax({
                url:'/account/search',
                type:'GET',
                success: update,
                error:function(error){
                    console.log(error);
                }
            });
}



function update(data){
            console.log(data)
            var q = data.length;
}

答案 2 :(得分:0)

尝试一下:在这种情况下可能会起作用。使用此值绑定值可能有效。

   
   
     function addRemoveQuestion(id){
        
         
         var formData =    $("#q_"+id).serialize()  
         
        $.ajax({
            method: "POST",
            url: window.location.href,
            data: formData,
            success: handleFormSuccess.bind(this, id) ,
            error: handleFormError,
        })
   }
   function handleFormSuccess( data, response,textStatus, jqXHR){
        console.log( data)//id
        console.log(textStatus)
        console.log(jqXHR)
        console.log("#btn_"+data )
      
        
    }