Ошибка загрузки данных на табуляторе только с помощью AJAX на iPad - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть php-сервер с установленным Symfony 3.4. Я сделал приложение, в котором люди могут подключаться и отправлять табулятор использования заказов. Все отлично работает на ПК и на всех других мобильных устройствах, таких как (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 голосов
/ 04 ноября 2018

Возможно, проблема связана с отсутствием совместимости при загрузке с iPad,

пытались ли вы включить Fetch Polyfill перед библиотекой Tabulator

0 голосов
/ 03 ноября 2018

Я решил свою проблему с JQUERY Ajax. Я переопределил обещание запроса Tabulator и добавил 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:[
...