代码之家  ›  专栏  ›  技术社区  ›  recipriversexclusion

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

  •  2
  • recipriversexclusion  · 技术社区  · 16 年前

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

    我有以下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?

    谢谢!

    2 回复  |  直到 16 年前
        1
  •  1
  •   Ender    16 年前

    看我的评论。如果您使用ie,则会缓存get ajax请求。jquery可以通过向请求添加一个随机的querystring变量来解决这个问题。只需将您的ajax调用更改为:

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

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

        2
  •  0
  •   aceofspades    16 年前

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

    success: function createTaskListTable(data, textStatus, xhr) {
      console.dir(data, textStatus, xhr);
    }
    

    如果数据确实被返回为空,那么您可能会从其他字段(尤其是xhr)获得一些信息。

    注意,错误回调是用(xhr、textstatus、errorthrown)调用的。