Vai al contenuto

La proprietà di caricamento XMLHttpRequest non funziona

Featured Replies

Inviato

Tengo a segnalare che la proprietà XMLHttpRequest non funziona più con l'aggiornamento alla versione 4.6, ho un form dove uso questa modalità  e richiamando l'evento progress non mi fa più vedere la barra della percentuale caricata, speriamo fissino il problema.

ps: funziona solo premendo f5 e svuotando la cache, ma se ricaricate la pagina, si blocca, in ogni pagina, anche sulle  page MANAGEMENT

Inviato
  • Admin

Ciao, ne sei sicuro? XMLHttpRequest è una funzione Javascript, IPS non può deprecare una funzione di una libreria... può deprecare solo gli helper creati da lui, ecco qui quelli deprecati con la 4.6:

INVISIONCOMMUNITY.COM

We took the opportunity for some spring cleaning and to clean up the 4.6 code, so we have finally removed most of the methods which were...

Mi sento più da dire che sia un problema di compatibilità... controlla che la 4.6 non abbia qualche script che vada in conflitto con il tuo...

Inviato
  • Autore
<form id="data" method="post" enctype="multipart/form-data">
  <input name="up_vid" type="file" id="up_vid"/>
  <br><br>
  <button id="uploadBtn">Begin Upload</button>
</form>

<br><br>
<div id="status">PROGRESS HERE</div>

<script>
$(document).ready(function() {
    $("#uploadBtn").click(function() {
        var formData = new FormData($('#data')[0]);
        console.log(formData);
        $.ajax({
            url: "/echo/html/",
            type: 'POST',
            data: formData,
            xhr: function() {
                var xhr = new window.XMLHttpRequest();
                xhr.upload.addEventListener("progress", function(evt) {
                    if (evt.lengthComputable) {
                        var percentComplete = evt.loaded / evt.total;
                        console.log(percentComplete);
                        $('#status').html('<b> Uploading -> ' + (Math.round(percentComplete * 100)) + '% </b>');
                    }
                }, false);
                return xhr;
            },
            success: function(data) {
                $("#status").html('UPLOADED!!');
            },
            cache: false,
            contentType: false,
            processData: false
        });
        return false;
    });
});
  </script>

Non funziona ovunque, potete anche testarlo voi, create una page, poi inserire questo codice, funziona solo una volta, premendo ctrl + f5 rifunziona, ma poi se non si prema quest'ultimo non fà, prima non dava problemi alla versione 4.5, ora riscontro sempre questo problema, quello di sopra è un test creato per rendere l'idea di cosa parlo, se volete provarlo poi mi fate sapere se a voi funziona senza cliccare ctrl +f5 dopo gli aggiornamenti della pagina, grazie

Inviato
  • Admin

Purtroppo non ho pages per effettuare la prova... la console del browser non ti da nessun errore?

Inviato
  • Autore

non da nessun errore in console, purtroppo, andra sicuramente in conflitto con qualcosa

Inviato
  • Admin
22 minuti fa, trattore ha scritto:

non da nessun errore in console, purtroppo, andra sicuramente in conflitto con qualcosa

Ti è possibile cambiare il nome a addEventListener? comunque prova a mettere il codice pure in una Pages senza usare il template del forum, guarda lì se smette di funzionare

Inviato
  • Autore

non penso, dovranno fixare qualcosa loro per risolvere il problema, prima funzionava perfettamente, nel javascript_global del tema, sicuramente

  • 4 settimane dopo...
Inviato
  • Autore

ed ecco cosa faceva conflitto, ho scoperto la magagna, sul body c'è questa condizione if

{{if output.globalControllers}}data-controller='{expression="implode( ',', output.globalControllers )"}'{{endif}}  

che rilascia sul html

 data-controller="core.front.core.app,core.front.widgets.manager"

basta togliere app, e ora non c'è più conflitto, spero di non aver fatto casino togliendo la parola app sul data, ho testato e sembra funzionare bene...  qualcuno sa per caso se mi sono limitato in qualcosa? a che serve il data controller

Per favore accedi per lasciare un commento

Potrai lasciare un commento dopo aver effettuato l'accesso

Accedi Ora

Chi sta navigando 0

  • Nessun utente registrato visualizza questa pagina.

Informazioni importanti

Abbiamo inserito dei cookies nel tuo dispositivo per aiutarti a migliorare la tua esperienza su questo sito. Puoi modificare le impostazioni dei cookie, altrimenti puoi accettarli cliccando su continua. to insert a cookie message.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.