Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于jquery.ajax()调用返回的数据的快速问题(已编辑)_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 关于jquery.ajax()调用返回的数据的快速问题(已编辑)

Javascript 关于jquery.ajax()调用返回的数据的快速问题(已编辑),javascript,jquery,ajax,Javascript,Jquery,Ajax,编辑:最初的问题是由于其他地方的一个愚蠢的语法错误,我已经修复了这个错误。但我有一个新问题,如下所述 我有以下jquery.ajax调用: $.ajax({ type: 'GET', url: servicesUrl + "/" + ID + "/tasks", dataType: "xml", success : createTaskListTable }); createTaskListTable函数定义为 function createTaskListTa

编辑:最初的问题是由于其他地方的一个愚蠢的语法错误,我已经修复了这个错误。但我有一个新问题,如下所述

我有以下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!这怎么可能呢?前面的函数定义为
函数convertServiceXmlDataToTable(xml)
,因此它们不使用相同的变量名

完全糊涂了。这是缓存问题吗?如果是这样,我如何清除浏览器缓存以去除早期的XML


谢谢

尝试以如下方式内联定义回调:

success: function createTaskListTable(data, textStatus, xhr) {
  console.dir(data, textStatus, xhr);
}
如果数据确实返回为null,那么您可能会从其他字段(尤其是xhr)中获得一些见解


请注意,调用错误回调时使用(xhr、textStatus、errorshown)。

请参阅我的评论。如果使用IE,GET AJAX请求将被缓存。jQuery可以通过向请求中添加一个随机querystring变量来解决这个问题。只需将AJAX调用更改为:

$.ajax({
    type: 'GET',
    url: servicesUrl + "/" + ID + "/tasks",
    cache: false,
    dataType: "xml",
    success : createTaskListTable
});

这将自动添加随机查询字符串,从而防止浏览器缓存请求。

检查Firebug中的AJAX响应并确保其为有效的XML。如果您获得的数据有效,这应该可以工作。如果未定义
taskListXml
,您不会得到任何错误:函数只会返回而不做任何操作。您到底遇到了什么错误?只是想一想,但是您使用的是什么版本的jQuery,您在bug跟踪系统中看到过与此相关的任何东西吗?对于每个jQuery版本,在每个方法描述下都有一个注释系统,人们有时会使用它来报告bug。可能对您没有帮助,但值得一试……您可以尝试禁用缓存(至少在开发过程中),以确保浏览器不会缓存空响应。只需将“cache:false”添加到选项数组中。