2013-04-16 73 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

我添加了更新代码!你能帮我检查请求成功!我添加了从服务调用返回的字符串! –