仅在iPad上使用AJAX在制表器上加载数据时出错

时间:2018-11-03 19:28:00

标签: javascript php ajax symfony tabulator

我有一个安装了symfony 3.4的php服务器,我制作了一个应用程序,人们可以使用制表符进行连接和发送订单。 所有功能都可以在PC以及所有其他移动设备(如(iphone))上很好地使用,但在ipad上则无法使用。 我真的不知道为什么我在网上发现ipad的缓存和AJAX调用存在问题,但我不知道如何在制表器配置上停用缓存。

这是制表程序的初始化(我删除了列和回调的列表,因为它确实很长,它们可与所有其他系统一起使用,所以我认为这不是问题):

 table = new Tabulator("#tabellaOrdinazione", {
    height: ($(window).height() - $("#inizioContenuti").position().top) + "px",
    ajaxURL: Routing.generate('agente_ordine_nuovo_lista_ajax', {
                codiceCliente:  $("#codiceClienteTxt").val()
            }),
    ajaxProgressiveLoad:"scroll",
    ajaxProgressiveLoadScrollMargin:300,
    ajaxFiltering:true,
    ajaxSorting:true,
    layout:"fitDataFill",
    placeholder: "No data!",
    columns:[

编辑:我刚刚尝试使用无高速缓存(如附加代码)更改高速缓存,但是结果是相同的。在iPad以外的所有设备上均可使用

 table = new Tabulator("#tabellaOrdinazione", {
            height: ($(window).height() - $("#inizioContenuti").position().top) + "px",
            ajaxURL: Routing.generate('agente_ordine_nuovo_lista_ajax', {
                        codiceCliente:  $("#codiceClienteTxt").val()
                    }),
            ajaxProgressiveLoad:"scroll",
            ajaxProgressiveLoadScrollMargin:300,
            ajaxFiltering:true,
            ajaxSorting:true,
            ajaxConfig: {
                cache: 'no-cache',
                credentials: 'same-origin'
            },
            layout:"fitDataFill",
            placeholder: "No data!",
            columns:[

2 个答案:

答案 0 :(得分:0)

我已经解决了JQUERY Ajax的问题​​。 我已经重写了Tabulator的Request Promise,并添加了一个JQUERY ajax来从服务器加载数据,现在ipad也可以使用。

代码如下:

function ottieniDatiRicerca(url, config, params){
            //url - the url of the request
            //config - the ajaxConfig object
            //params - the ajaxParams object

            //return promise
            return new Promise(function(resolve, reject){
               $.ajax({
                    type: "GET",
                    dataType: 'html',
                    url: url + "?params=" + encodeURI(JSON.stringify(params)),
                    async: true,
                    success: function (response) {
                        resolve(JSON.parse(response));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        reject("Status: " + textStatus);
                    }
                });
            });
        }

        function inizializzaTabulator(){
            table = new Tabulator("#tabellaOrdinazione", {
            height: ($(window).height() - $("#inizioContenuti").position().top) + "px",
            ajaxURL: Routing.generate('agente_ordine_nuovo_lista_ajax', {
                        codiceCliente:  $("#codiceClienteTxt").val()
                    }),
            ajaxProgressiveLoad:"scroll",
            ajaxProgressiveLoadScrollMargin:300,
            ajaxFiltering:true,
            ajaxSorting:true,
            ajaxRequestFunc:ottieniDatiRicerca,
            layout:"fitDataFill",
            placeholder: "No data!",
            columns:[

答案 1 :(得分:0)

问题可能是由于iPad上的抓取兼容性不足所致,

您是否尝试过将Tab Fetch Polyfill包含在制表器库中