SVILUPPO LOCALE · TEST REALI
Condividi localhost: test su smartphone e webhook
Il sito gira sul tuo computer. Un link HTTPS temporaneo permette a telefono, clienti o servizi webhook di raggiungerlo, senza distribuzione.
Prima di condividere: controlla l’indirizzo locale
Guarda l’URL mostrato dal server di sviluppo. Protocollo e porta contano: http://localhost:5173 e https://localhost:7143 sono destinazioni diverse. Apri esattamente quell’indirizzo ed esegui un’azione tipica prima di creare il tunnel.
Un’app, una porta
Se pagina e API usano lo stesso indirizzo locale, un tunnel raggiunge entrambe. I percorsi restano invariati: una richiesta pubblica a /contact raggiunge /contact nell’app locale. Il tunnel non copia né distribuisce i file.
Frontend e API su porte diverse
Un tunnel verso il frontend non pubblica automaticamente un’API su un’altra porta. Un browser che chiama localhost:3000 contatta il dispositivo del visitatore. Usa il proxy API del server di sviluppo oppure un URL di test raggiungibile per l’API e adatta il frontend.
Apri l’indirizzo pubblico sul computer e su un altro dispositivo. Se la pagina locale funziona ma quella pubblica no, tieni a portata entrambe le URL per distinguere un problema dell’app da uno del tunnel o della configurazione host.
Apri localhost sul telefono
Sul telefono localhost indica il telefono stesso, non il computer. Apri il link pubblico oppure scansiona il codice QR in GhostlyShare.
- Passa ai dati mobili per verificare l’accesso fuori dal Wi-Fi.
- Prova menu, moduli, tastiera e caricamento di file sul dispositivo reale.
- Apri direttamente una pagina interna e ricaricala. Controlla anche immagini e risposte dell’API.
Provi solo sullo stesso Wi-Fi? L’indirizzo di rete locale del computer può bastare se server di sviluppo e firewall consentono l’accesso. Un tunnel pubblico serve per altre reti e servizi esterni.

Un test utile sul telefono in cinque minuti
- Navigazione e impaginazione
- Apri il menu, ruota il telefono e visita una pagina lunga. Cerca scorrimento orizzontale, pulsanti coperti e contenuti nascosti da un’intestazione fissa. L’emulazione del browser aiuta, ma non riproduce ogni interazione reale.
- Moduli e sessione
- Tocca ogni campo e invia un valore non valido, poi uno valido. Verifica che gli errori restino visibili sopra la tastiera. Se l’accesso funziona solo sul computer, prova una nuova sessione e controlla callback e cookie.
- Richieste e caricamento
- Prova una pagina ricca di immagini e un’azione che carica dati. Una risposta lenta sulla connessione domestica non misura le prestazioni in produzione. Annota pagina, dispositivo e azione per riprodurre il problema in locale.
Mostra il lavoro a un cliente
Invia la pagina precisa da esaminare. Spiega cosa provare e quando chiuderai l’anteprima.
Prima dell’invio
Usa un account di prova e contenuti di esempio. Verifica che il link funzioni senza i tuoi cookie o la tua sessione autenticata.
Chiedi una verifica precisa
Compilare il modulo, controllare il menu mobile o completare un ordine con pagamenti di prova: un compito chiaro rende i pareri più utili.
Ecco l’anteprima per la revisione di oggi. Controlla il menu mobile e il modulo di contatto. Il link verrà chiuso dopo la chiamata.
Rendi i problemi riproducibili
Chiedi URL, dispositivo, browser e ultima azione prima del problema. Una schermata con «mi aspettavo X, invece è successo Y» aiuta più di «la pagina non funziona». Avvisa se modifichi l’app durante la revisione: in base alla configurazione, i visitatori possono vedere subito modifiche o ricaricamenti.
Ricevi un webhook in locale
Un servizio webhook non raggiunge localhost sul tuo computer. Fornisci l’indirizzo pubblico del tunnel con il percorso di callback. L’esempio presume che l’app gestisca già richieste POST su /api/webhooks/demo.
http://localhost:5173/api/webhooks/demohttps://YOUR-TUNNEL.trycloudflare.com/api/webhooks/demo- Sostituisci YOUR-TUNNEL con il nome host effettivo e inserisci l’URL di callback completo nelle impostazioni di test del fornitore.
- Mantieni attiva la verifica delle firme. Conserva localmente il segreto del webhook e invia un evento di prova dal fornitore.
- Controlla stato di consegna e log locali. Restituisci la risposta di successo prevista e gestisci i nuovi tentativi senza ripetere l’azione.
Una richiesta di password nel browser può bloccare il mittente del webhook. Usa un endpoint raggiungibile dal fornitore e verifica le richieste firmate. CORS riguarda le richieste del browser, non i webhook tra server.
Controlla la risposta del webhook, non solo il browser
Aprire il callback nel browser invia di solito GET. Molti endpoint webhook attendono POST: un errore del browser non dimostra un problema di consegna. Invia l’evento di prova del fornitore e confronta orario e ID di consegna con il log locale.
- 404 / 405
- Verifica percorso e metodo HTTP. Usa la porta dell’API, non necessariamente quella del frontend. Una home page raggiungibile non dimostra che esista l’endpoint di callback.
- 401 / 403
- Individua il rifiuto: password dell’anteprima, autenticazione dell’app o verifica della firma. Per i dati firmati rispetta le regole sul corpo originale della richiesta; analizzarlo e riscriverlo prima della verifica può invalidare la firma.
- 5xx / Timeout
- Controlla che l’app sia attiva e abbia ricevuto la richiesta. Per elaborazioni lente rispetta la scadenza del fornitore e usa attività in background quando opportuno. Prova una consegna ripetuta per evitare ordini o messaggi duplicati.
Usa la modalità di test del fornitore e non registrare segreti o dati personali completi. Un test riuscito verifica consegna ed elaborazione dell’app, ma non sostituisce i requisiti d’integrazione del fornitore.
Il link si apre, ma qualcosa non funziona?
Il link pubblico non raggiunge l’app
Apri prima l’URL locale. Verifica porta, HTTP o HTTPS e che app e tunnel siano ancora attivi.
Immagini o chiamate API non funzionano
Cerca URL localhost inseriti direttamente nel codice. Usa percorsi relativi dove possibile. Un’API su un’altra porta richiede un percorso raggiungibile dedicato.
L’app reindirizza a localhost
Controlla URL di base pubblico, proxy attendibili e callback di accesso. Autorizza l’host reale dell’anteprima senza disabilitare globalmente i controlli sugli host.
Ricaricamento in tempo reale o WebSocket non funzionano
Controlla che i WebSocket usino l’host pubblico e wss nelle pagine HTTPS. Alcuni server di sviluppo richiedono un host HMR separato.
Il webhook non riceve una risposta di successo
Controlla percorso di callback, metodo HTTP, segreto della firma e log di consegna. Aggiorna il callback dopo l’avvio di un nuovo tunnel temporaneo.
Concludi il test e interrompi la condivisione
Interrompi la condivisione in GhostlyShare o il tunnel nel terminale con Ctrl+C. La scadenza può chiudere automaticamente un’anteprima programmata. Al termine rimuovi anche gli URL di callback temporanei dal fornitore.
Serve un indirizzo fisso per un uso continuativo?
Un’anteprima temporanea non è una distribuzione. La guida all’hosting domestico spiega tunnel con nome, domini, servizi Windows e costi di gestione.
Configurare un Cloudflare Tunnel permanente →Domande sulle anteprime locali
FAQ
Perché localhost non funziona sul telefono?
Localhost indica il dispositivo che apre l’indirizzo. Usa il link pubblico sul telefono per raggiungere l’app sul computer.
Il computer deve restare acceso?
Sì. Computer, app locale e tunnel devono restare attivi. La sospensione o l’arresto del tunnel rende l’anteprima irraggiungibile.
Serve un dominio per un’anteprima?
No. Un tunnel temporaneo fornisce un indirizzo HTTPS pubblico. Aggiorna link e impostazioni webhook se cambia.
