如何从web服务使用jQuery ajax请求for footable v3?

时间:2017-01-16 01:15:26

标签: jquery json ajax web-services footable

我不知道为什么,但是footable docs只显示了一个从文件中获取数据的方法,而不是来自webservice,所以我尝试了各种组合来获取以json格式返回的数据到足够的实例,但没有运气。 他们的例子显示了以下内容:

$('.table').footable({
    "rows": $.get('rows.json')
});

(假设列已经定义),这是有效的。 但是,在我的ajax查询中,我尝试了

$('.table').footable({
    "rows": data.d
});

并且没有错误发生,数据格式正确(使用在线JSON模式检查程序验证),但没有任何反应(控制台中没有错误)。

我彻底测试了ajax查询(工作,我甚至可以解析返回的data.d),所以我迷失了如何继续。

$.ajax({
    type: "POST",
    url: "/Search.asmx/GetListingsByPageSort",
    data: '{"sp":' + JSON.stringify(sp) + '}',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        $('.table').footable({
            "rows": data.d
        });
    },
    error: function (xhr, status) {
        alert("fail: " + status);
    }
});

HTML

    <table class="table" data-paging="true">
<thead>
        <tr>
            <th class="hdrcolVdr" data-class="expand" data-type="html" data-name="vendor">Vendor </th>
            <th class="hdrcolMan" data-breakpoints="xs sm" data-type="html" data-name="manufacturer">Manufacturer </th>
            <th class="hdrcolProd" data-breakpoints="xs sm md" data-type="html" data-name="product_name">Product </th>
            <th class="hdrcolPrice" data-breakpoints="xs" data-type="html" data-name="price">Price </th>
            <th class="hdrcolI" data-breakpoints="xs sm" data-type="html">Info </th>
        </tr>
    </thead>
    </table>

难住了。

1 个答案:

答案 0 :(得分:0)

我发现(经过努力工作)问题来自于从GET / POST收集响应的异步方式。 在我的代码中,这有效:

rows : $.get('js/rw1.json')

但这不起作用:

rows : $.get("rest.php")

即使他们都给出了相同的值(看到跟踪净流量)。

我已经解决了在同步模式下强制jQuery所以它等待GET的响应。可能不是一个很好的解决方案,但它的工作原理。这是我的代码:

rows : ajaxRows();

其中ajaxRows是:

function ajaxRows(){
    var retu;
    jQuery.ajaxSetup({async:false});        
    retu = $.get("rest.php");
    jQuery.ajaxSetup({async:true});     
    return retu;            
}

在您的代码中,您可能应该添加$ .ajax参数:

async:false

HTH