Handling missing tokens (no JavaScript)

simplecaptcha requires JavaScript and WebAssembly (available in >99% of browsers). Visitors without JavaScript submit your form without the simplecaptcha-response field; /v1/siteverify then returns missing-input-response.

Recommendation: don't hard-reject — degrade. A missing token is not proof of a bot; it's a visitor you couldn't verify:

if (!token) {
  // No token: route to manual review instead of rejecting —
  // e.g. moderation queue, email double-opt-in, or rate limiting.
  await queueForReview(submission)
} else {
  const result = await captcha.verify(token)
  …
}

Suitable fallback paths, depending on the form:

  • Contact forms: accept, but into a moderation queue.
  • Registrations: enforce email double-opt-in.
  • Checkout: server-side rate limit per session; manual order review when in doubt.