簡體   English   中英

關於jquery.ajax()調用返回的數據的快速問題(已編輯)

[英]A quick question on data returned by jquery.ajax() call (EDITED)

編輯:最初的問題是由於其他地方的愚蠢語法錯誤,我已修復。 我有一個新問題,如下所述

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

謝謝!

看到我的評論。 如果您使用的是IE,則會緩存GET AJAX請求。 jQuery可以通過向請求中添加一個隨機的querystring變量為您解決這個問題。 只需將您的AJAX調用更改為此:

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

這將自動添加隨機查詢字符串,從而防止瀏覽器緩存請求。

嘗試像這樣定義回調內聯:

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

如果確實將數據返回為null,那么您可能會從其他字段中獲得一些見識,尤其是xhr。

請注意,錯誤回調使用(xhr,textStatus,errorThrown)進行調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM