Errore "Unable to submit form".
Hai incontrato una schermata di errore con il titolo “Unable to submit form”? Avrebbe questo aspetto:

In tal caso, questo articolo dovrebbe aiutarti a risolvere il problema.
Cosa è successo?
Se vedi questa schermata significa due cose:
- Alla tua richiesta manca l’header HTTP “referer” che contiene l’URL della pagina web da cui il modulo è stato inviato.
- Il modulo è stato configurato con un attributo
actionche punta a un URL Formspree contenente un indirizzo email. Per esempio:https://formspree.io/email@domain.com.
Quando l’URL action del modulo contiene solo un’email per l’identificazione, Formspree ha bisogno di informazioni aggiuntive contenute nell’header “referer” per identificare il modulo. Questi URL basati su email erano il modo originale per integrarsi con Formspree. Oggi siamo passati a usare un ID del modulo nell’URL, quindi non ci affidiamo più all’header “referer”.
Soluzione consigliata
In quanto proprietario del modulo, se stai usando un attributo action come https://formspree.io/email@domain.com, ti suggeriamo questi passaggi:
- Crea un account gratuito su https://formspree.io/register.
- Crea un nuovo modulo. Riceverai un URL
actionche contiene un ID del modulo univoco. - Usa il nuovo URL al posto del tuo precedente URL basato su email.
Questo permetterà al tuo modulo di funzionare su tutti i browser e su tutte le pagine del tuo sito web. Inoltre non dovrai più esporre la tua email nell’HTML del modulo, un potenziale problema di sicurezza.
Se desideri trasferire i tuoi invii esistenti sul tuo nuovo modulo, invia una richiesta al nostro team di assistenza e ce ne occuperemo noi per te.
Soluzione legacy
In quanto proprietario del modulo, se non puoi modificare l’attributo action del tuo modulo, prova i seguenti passaggi di risoluzione dei problemi. Nota che, senza modificare il tuo URL come descritto nella soluzione consigliata qui sopra, il tuo modulo potrebbe non caricarsi su tutti i browser. (vedi sotto)
-
Potresti incontrare questo errore quando esegui i test in locale aprendo un file HTML direttamente nel tuo browser. In questo caso il suo URL inizierà con
file:///invece che conhttp://ohttps://. Questo non funzionerà perché i browser non trattano queste pagine come normali risorse web. In particolare, non inviano l’header “referer”. Prova a eseguire un server web locale per ospitare la pagina del tuo modulo. Se sei su Mac o Linux, puoi avviare un server web digitando il seguente comando nella tua applicazione terminale:python -m SimpleHTTPServer 8000Poi visita http://localhost:8000 sul tuo browser.
Se sei su Windows, prova a installare uno dei seguenti server web: Web server for Chrome, thttpd o Quickshare.
-
Se hai configurato il tuo modulo per inviare a un URL con il protocollo
http://, ma il tuo modulo è ospitato su una pagina a cui si accede tramite il protocollohttps://, l’header “referer” non verrà inviato. Dovrai aggiornare il tuo URLaction. In questo caso ti consigliamo la soluzione consigliata qui sopra. -
Se stai usando il browser Brave, tieni presente che Brave potrebbe bloccare l’header “referer”. Questo problema è stato segnalato al team di Brave. Ci farebbe piacere il tuo aiuto per portare la questione all’attenzione del team di Brave votando a favore.