编辑:最初的问题是由于其他地方出现了一个愚蠢的语法错误,我修复了这个错误。我有一个新问题,如下所述
我有以下jquery.ajax调用:
$.ajax({
type: 'GET',
url: servicesUrl + "/" + ID + "/tasks",
dataType: "xml",
success : createTaskListTable
});
createTaskListTable
函数定义为
function createTaskListTable(taskListXml) {
$(taskListXml).find("Task").each(function(){
alert("Found task")
}); // each task
}
问题是:这不起作用,我收到一条错误,指出 taskListXml
未定义。 JQuery文档声明成功函数传递了三个参数,第一个参数是数据。
如何使用我自己选择的变量名将.ajax()
返回的数据传递给我的函数。
我现在的问题是我从以前的ajax调用中获取XML!这怎么可能呢?之前的函数定义为function convertServiceXmlDataToTable(xml)
,因此它们不使用相同的变量名。
完全糊涂了。这是一些缓存问题吗?如果是这样,我如何清除浏览器缓存以摆脱早期的XML?
谢谢!
答案 0 :(得分:1)
查看我的评论。如果您正在使用IE,则会缓存GET AJAX请求。 jQuery可以通过向请求添加随机查询字符串变量来为您解决此问题。只需将您的AJAX调用更改为:
$.ajax({
type: 'GET',
url: servicesUrl + "/" + ID + "/tasks",
cache: false,
dataType: "xml",
success : createTaskListTable
});
这将自动添加随机查询字符串,从而阻止浏览器缓存请求。
答案 1 :(得分:0)
尝试内联定义你的回调:
success: function createTaskListTable(data, textStatus, xhr) {
console.dir(data, textStatus, xhr);
}
如果确实将数据返回为null,您可能会从其他字段中获得一些见解,尤其是xhr。
请注意,使用(xhr,textStatus,errorThrown)调用错误回调。