Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Richiesta XMLHttpRequest

    Ciao a tutti, voglio verificare se un immagine esiste e provo a fare una rischiesta XMLHttpRequest:

    codice:
    var xhttp = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveObject("Microsoft.XMLHTTP");
    xhttp.open("HEAD", "https://www.xxxxxx.it/images/img.jpg", true);
    xhttp.send(null);
    alert(xhttp.status);
    Non capisco perche il risultato è sempre 0 (zero) sia che esiste che non esiste l'immagine

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,907
    Quote Originariamente inviata da techno Visualizza il messaggio
    Ciao a tutti, voglio verificare se un immagine esiste e provo a fare una rischiesta XMLHttpRequest: [...]
    Non capisco perche il risultato è sempre 0 (zero) sia che esiste che non esiste l'immagine
    Non puoi testare la condizione esattamente la riga dopo la chiamata a send(): si tratta di un'operazione asincrona, che richiede un certo quantitativo di tempo e viene gestita in background, quindi dovrai registrare un callback da eseguire quando l'oggetto avrà terminato di ricevere tutti i dati spediti dal server a fronte della richiesta.

    Leggi la documentazione e analizza questi esempi che ti illustrano come usare l'oggetto XMLHttpRequest.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    1,325
    Quote Originariamente inviata da techno Visualizza il messaggio
    Ciao a tutti, voglio verificare se un immagine esiste e provo a fare una rischiesta XMLHttpRequest:

    codice:
    var xhttp = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveObject("Microsoft.XMLHTTP");
    xhttp.open("HEAD", "https://www.xxxxxx.it/images/img.jpg", true);
    xhttp.send(null);
    alert(xhttp.status);
    Non capisco perche il risultato è sempre 0 (zero) sia che esiste che non esiste l'immagine
    Non puoi semplicemente fare una cosa del genere?
    codice:
    var imm = new Image();
    imm.onload = ()=>{
        alert("c'è");  
    };
    imm.onerror=()=>{
      alert("non c'è");
    };
    imm.src = "https://forum.html.it/forum/image.php?u=21655&dateline=1012008115";
    //test dopo 5 secondi
    setTimeout(()=>{imm.src = "https://indirizzoacaso.com";},5000);
    Ultima modifica di U235; 24-03-2021 a 19:46

  4. #4
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Non puoi semplicemente fare una cosa del genere?
    codice:
    var imm = new Image();
    imm.onload = ()=>{
        alert("c'è");  
    };
    imm.onerror=()=>{
      alert("non c'è");
    };
    imm.src = "https://forum.html.it/forum/image.php?u=21655&dateline=1012008115";
    //test dopo 5 secondi
    setTimeout(()=>{imm.src = "https://indirizzoacaso.com";},5000);
    Perche testare dopo 5 secondi?

  5. #5
    Quote Originariamente inviata da alka Visualizza il messaggio
    Non puoi testare la condizione esattamente la riga dopo la chiamata a send(): si tratta di un'operazione asincrona, che richiede un certo quantitativo di tempo e viene gestita in background, quindi dovrai registrare un callback da eseguire quando l'oggetto avrà terminato di ricevere tutti i dati spediti dal server a fronte della richiesta.

    Leggi la documentazione e analizza questi esempi che ti illustrano come usare l'oggetto XMLHttpRequest.

    Ciao!
    Tu parli di inserire "onreadystatechange"?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    1,325
    Quote Originariamente inviata da techno Visualizza il messaggio
    Perche testare dopo 5 secondi?
    Non c’è scritto testare dopo 5 secondi, quello è semplicemente un secondo test che deve fallire e lo faccio partire dopo 5 secondi. È solo un esempio per dire che dopo ti basta cambiare il source per richiamare la function che dichiari, in modo da poterlo fare in tutto l’ambito in cui hai dichiarato imm quando ti pare.


    esempio su jsFiddler
    Ultima modifica di U235; 25-03-2021 a 00:52

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,907
    Quote Originariamente inviata da techno Visualizza il messaggio
    Tu parli di inserire "onreadystatechange"?
    Ovviamente.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.