2013-04-16 98 views
2

我有以下代碼在單獨的functions.js文件中調用json Web服務。Jquery .ajax不按預期工作

function getMajorGroups(){ 

var element = $(".item-group-button"); 

$.ajax({ 
    type:"GET", 
    url:"localhost:6458/posApplication/getAllMajorGroups", 
    data:"{}", 
    contentType:"application/json; charset=utf-8", 
    dataType:"json", 
    done:successResult(majorGroups), 
    fail:errorResult(error) 
}); 
} 

function successResult(majorGroups){ 
    var mGroups = response.d; 
    $("#item-groups").empty(); 

    $.each(majorGroups ,function(){ 
     var h3 = $('h3').append(majorGroups.code); 
     element.append(h3); 
     $("#item-groups").prepend(element); 
    }); 
} 

function errorResult(error){ 
    alert("error"); 
} 

當我運行網頁,並使用螢火蟲跟蹤步驟時,我可以看到腳本執行。但它不會執行ajax調用中的成功或失敗代碼。我在這裏做錯了什麼?

以下是服務返回的字符串示例。 {「majorGroups」:[{「update」:「false」,「hasMore」:「false」,「status」:「A」,「description」:「Beverage」,「majorGroupId」:「48」 「代碼」: 「飲料」},{ 「更新」: 「假」, 「hasMore」: 「假」, 「狀態」: 「A」, 「描述」: 「洗衣店」, 「majorGroupId」: 「51」 「代碼」: 「洗衣店」},{ 「更新」: 「假」, 「hasMore」: 「假」, 「狀態」: 「A」, 「描述」: 「香菸」, 「majorGroupId」: 「50」 「代碼」: 「捲菸」},{ 「更新」: 「假」, 「hasMore」: 「假」, 「狀態」: 「A」, 「描述」: 「食品」, 「majorGroupId」: 「47」 ,「code」:「Food」},{「update」:「false」,「hasMore」:「false」,「status」:「A」,「description」:「Health Center」,「majorGroupId」 「,」code「:」Health Center「}],」failure「:」false「}

+0

什麼錯誤它顯示在控制檯.. – Rafee

+0

它不顯示任何錯誤!當我刷新頁面時,它通過ajax函數進入成功函數,它不執行內部代碼,然後進入失敗方法,它不執行它並退出腳本! –

+0

嘗試發送虛擬數據,看看會發生什麼 – Rafee

回答

2

$.ajax沒有任何屬性,名稱爲failoureerror應該使用,因此它看起來像error: errorResult

除此之外,檢查該請求是通過Chrome開發工具或類似的工具中的網絡選項卡。檢查原始響應中的內容,確保它是你想要的。如果請求失敗,你會看到或至少有錯誤代碼。

如果一切正常,到目前爲止然後確保你的加入DOM元素時DOM就緒因此與$(function(){ /* your stuff here */ })

編輯包住的東西:

這是沒有辦法的辦法donefail應該使用。 jQuery ajax調用返回promise。

$.ajax({ 
    url : "..." 
    /* omitted */ 
}).done(successCallback).fail(failCallback) 

其中successCallback可以是功能名稱,如您定義的更迭功能或者只是匿名函數一樣

.done(function(response){ 
    // do stuff with response 
} 

我想你應該仔細閱讀jQuery的文檔。

而且你$.each呼叫有點破 - 你跳過函數參數提供給$.each

+0

在完成Jquery文檔後,我改變了成功和失敗的原因,並失敗了。現在我得到一個螢火蟲錯誤,說沒有定義響應! –

+0

您是否檢查過該請求成功?發佈您的更新代碼 – Marek

+0

我添加了更新代碼!你能幫我檢查請求成功!我添加了從服務調用返回的字符串! –