Jedna wiadomość, trzy punkty kontroli
Napis „Dziękujemy” może powstać wyłącznie w interfejsie. Zapisane zgłoszenie to kolejny etap, a email jeszcze następny. Użyj rozpoznawalnej wiadomości testowej, by nie pomylić ich wyników.
Poniższe kody dotyczą Formgong. Przy innej usłudze zachowaj tę kolejność kontroli, lecz sprawdź jej własne odpowiedzi i ustawienia.
Czy przycisk wywołuje wysyłkę
Otwórz narzędzia przeglądarki i kartę Network, po czym wyślij formularz. Znajdź POST na https://formgong.com/submit. Sprawdź adres, access_key, pola i odpowiedź.
Brak żądania wskazuje na obsługę przycisku lub formularza. HTML potrzebuje prawidłowego action i method; JavaScript właściwego URL w fetch.
Nie uznawaj samego fetch za sukces
Do odpowiedzi JSON użyj Accept: application/json i sprawdzaj zarówno HTTP, jak i success. Formularz wysłany klasycznie dostaje przekierowanie. Przykładową funkcję wywołaj w obszarze try/catch; po błędzie zachowaj pola.
// Call from your form's submit handler inside try/catch.
// Keep the entered fields when the request fails.
async function sendContactForm(form) {
const response = await fetch("https://formgong.com/submit", {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
},
body: JSON.stringify({
...Object.fromEntries(new FormData(form)),
access_key: "fk_your_access_key",
}),
});
const result = await response.json();
if (!response.ok || result.success !== true) {
throw new Error(result.message || "Submission failed");
}
// Accepted by Formgong; this is not email-delivery confirmation.
return result.id;
}Odpowiedź często wskazuje następny krok
unknown_access_key wymaga sprawdzenia klucza; origin_not_allowed dozwolonych domen. turnstile_missing i turnstile_failed dotyczą tokena ochrony. rate_limited oraz limit_exceeded oznaczają różne ograniczenia, których nie naprawisz szybkimi ponowieniami.
Na czas wysyłki zablokuj przycisk, a po zakończeniu odblokuj go. Informacja o błędzie ma pomóc w ponownej próbie, nie usuwać napisanej wiadomości.
Poszukaj zapisu także w spamie
Wybierz formularz odpowiadający kluczowi ze strony. Sprawdź jego zgłoszenia oraz spam. Wypełnione botcheck może dać pozornie poprawną odpowiedź, ale zatrzymać powiadomienia.
Jeśli używasz oceny AI z wstrzymywaniem spamu, sprawdź też ten status. To mechanizm osobny od samego przyjęcia żądania.
Gdy zgłoszenie istnieje, przejdź do poczty
Potwierdź email właściciela konta. W ustawieniach właściwego formularza sprawdź włączenie powiadomień oraz zweryfikowany adres odbiorcy. Następnie przejrzyj spam, filtry i przekierowania skrzynki.
Zgłoszenie w Telegramie pomaga zawęzić problem do poczty, lecz nie potwierdza jej dostawy. Automatyczna odpowiedź dla odwiedzającego to również osobna wiadomość.
Błąd po dodaniu Turnstile
Odśwież kod integracji: potrzebny jest aktualny site key i cf-turnstile-response. Tokeny wygasają i są jednorazowe, więc ponowna próba może wymagać odświeżenia widżetu. Secret key nie powinien trafiać do przeglądarki.
Zachowaj informacje do dalszej diagnozy
Zapisz adres strony, czas testu, status HTTP, kod błędu i ID zgłoszenia, jeśli istnieje. Nie publikuj danych klienta ani sekretów. Po naprawie wykonaj pełny test ponownie.
Do podłączenia od początku służy przykład HTML; dodatkowy kanał opisuje poradnik Telegrama.
Pytania i odpowiedzi
Czy success: true oznacza dostarczony email?
Nie. Potwierdza przyjęcie żądania, a dostawa powiadomienia jest osobnym etapem.
Dlaczego Telegram działa, a poczta nie?
Kanały są niezależne. Sprawdź włączone emaile, potwierdzonych odbiorców i spam w skrzynce.
Dlaczego botcheck nie zwraca błędu?
To pułapka dla botów: żądanie może wyglądać poprawnie, lecz zostać zapisane jako spam bez powiadomień.
Jak ponowić wysyłkę z Turnstile?
Uzyskaj nowy token i sprawdź jego przesłanie w cf-turnstile-response. Nie używaj ponownie zużytego tokena.
Źródła i dokumentacja
Oficjalne materiały pomocnicze: MDN: Fetch API, Cloudflare: Turnstile token validation. Dokumentacja Formgong, Przechowywanie danych.
Artykuł w formacie Markdown