通过 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 调用传递到更新函数的建议。

谢谢

原文由 ssharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 201
2 个回答

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

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

原文由 Sirko 发布,翻译遵循 CC BY-SA 3.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 )


    }

原文由 Lucky 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题