jquery .ajax调用不执行成功函数

时间:2013-04-16 11:25:45

标签: javascript jquery

下面是调用json Web服务的jquery代码。

    function getMajorGroups(){

    var element = $(".item-group-button");
    var response = $.ajax({
        type:"GET",
        url:"http://localhost:6458/posApplication/touch/getAllMajorGroupsForTouch",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data:{}
    });

    response.done(function(data){
        alert(data);
    });

    response.fail(function() {
        $("#item-groups").empty();
    });
}

我连接到localhost中的服务,URL如上所示!当我删除http://时,response.fail只会运行。当我添加http://成功或失败都没有运行。这种方法我写的是错的还是有什么遗漏的。我在这里调用JSON Web服务!

当我在浏览器中尝试时,webservice返回一个JSON字符串!我正在调用GET类型的服务方法。

更新:

这是我在浏览器中直接使用URL时的Json响应。

{"majorGroups":[{"update":"false","hasMore":"false","status":"A","description":"Beverage","majorGroupId":"48","code":"Beverage"},{"update":"false","hasMore":"false","status":"A","description":"Laundry","majorGroupId":"51","code":"Laundry"},{"update":"false","hasMore":"false","status":"A","description":"Cigarette","majorGroupId":"50","code":"Cigarette"},{"update":"false","hasMore":"false","status":"A","description":"Food","majorGroupId":"47","code":"Food"},{"update":"false","hasMore":"false","status":"A","description":"Health Center","majorGroupId":"52","code":"Health Center"}],"failure":"false"}

2 个答案:

答案 0 :(得分:0)

使用dataType = json时,有一个可能导致失败的问题:

根据http://api.jquery.com/jQuery.ajax/

  

json“:将响应计算为JSON并返回一个JavaScript对象。严格解析JSON数据;拒绝任何格式错误的JSON并抛出解析错误。从jQuery 1.9开始,空响应也被拒绝;服务器应该返回null或{}的响应。

您可以采用的另一种方法是使用.getJSON功能,请参阅http://api.jquery.com/jQuery.getJSON/ 再次记下(来自.getJSON doc):

  

重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,请求通常会无提示失败...

在Firefox上,添加FireBug插件并选中“网络”选项卡。

答案 1 :(得分:0)

我遇到了同样的问题。在我的情况下,这是因为我使用了MySQL的“日期”而且有些东西被破坏了。我只需要预先格式化那个字段,那就是它。