我有一个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调用的更新函数。
谢谢
答案 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 )
}