Encontrou o erro abaixo "Unable to submit form"?
Se sim, esse artigo te ajudará a resolver esse problema.
O que aconteceu?
Se você está recebendo este erro, significa duas possíveis situações:
- Sua requisição não contém o cabeçalho HTTP "referrer" contendo a URL da página (seu website) a partir da qual o formulário foi enviado.
- O seu formulário foi configurado com o atributo
action
apontando para uma URL do Formspree que contém um endereço de email. Por exemplo:https://formspree.io/email@domain.com
.
Quando o atributo action
contém uma URL apenas com o email de identificação, Formspree necessita informações adicionais no cabeçalho "referrer" para identificar o formulário. Essas URLs baseadas em emails foram a forma original de integrar seus formulários ao Formspree. Atualmente nós substituímos os emails por um ID na URL portanto, não dependemos mais do cabeçalho "referrer".
Solução sugerida
Como dono do formuário, se você está configurou o atributo action do seu formulário com uma URL parecida com https://formspree.io/email@domain.com
então nós sugerimos os seguintes passos:
- Crie uma nova conta grátis em https://formspree.io/register.
- Crie um novo formulário. Você receberá uma URL
action
contendo um ID único do formulário. - Use a nova URL no lugar da URL baseada no email.
Essa solução permite que seu formulário funcione em todos os navegadores e páginas do seu website. Além disso, não é mais necessário que você exponha seu email no seu formulário.
Caso você queira transferir as submissões do formulário antigo para o novo formulário, entre em contato com a nossa equipe de suporte e resolveremos para você.
Solução legada
Como dono do formulário, caso você não consiga alterar o atributo action
do seu formulário, siga os passos abaixo. Note que, ao seguir essa solução e não a solução sugerida acima, o seu formulário pode não funcionar em todos os navegadores.
- Você pode encontrar esse erro testando localmente abrindo o arquivo HTML diretamento no seu navegador. Nesse caso a URL começará com
file:///
ao invés dehttp://
ouhttps://
. Isso não funcionará poris os browsers não tratam essas páginas como recursos web normais. Especificamente, não é enviado o cabeçalho "referer". Tente rodar um servidor web local para hospedar sua página. Se você estiver em um Mac ou Linux, você pode iniciar um servidor web digitando o seguinte comando no seu terminal:python -m SimpleHTTPServer 8000
Após isso, acesse a página http://localhost:8000 no seu navegador.
Caso esteja no Windows, tente instalar os seguintes servidores web: Web server for Chrome, thttpd or Quickshare. - Se você configurou o seu formulário para ser enviado a uma URL com o protocolo
http://
, mas seu formulário está hospedado em uma página acessada via protocolohttps://
, o cabeçalho "referer" não será enviado. Você precisará atualizar a URL do atributoaction
. Nesse caso recomendamos a sugestão segurida acima. - Se você está usando Brave como navegador, esteja ciente de que o Brave pode bloquear o cabeçalho "referer". Esse problema foi enviado a equipe do Brave. Adoraríamos sua ajuda para chamar a atenção da equipe para isso, votando na nossa requisição.