HTTP QUERY in <form> submissions — live demo

Repro for whatwg/html#12594. Each form submits to a small echo.php, which reports the HTTP method it actually received.

HTML forms (no JavaScript)

Three identical forms; only the method attribute differs. Click each and read the big method on the result page.

method="query" the test — expected to fall back to GET
method="post" control
method="get" control
What this shows: the method="query" form makes the server report method GET (its body dropped) — an unknown form method falls back to GET, which is the core gap #12594 is about.

Testing QUERY via fetch()

Unlike forms, fetch() can issue QUERY (the Fetch Standard allows arbitrary method names). This page can't demonstrate it, though: GitHub Pages is static, and a cross-origin QUERY needs both a CORS preflight and a server that doesn't reject the method (many — e.g. LiteSpeed — return 400 before the app runs).

To see QUERY actually travel on the wire, run the zero-dependency Node server in this repo — it echoes the method same-origin, with no CORS or server-method blocking in the way:

git clone https://github.com/samuel-ifrs/query-form-repro
cd query-form-repro
node server.js          # then open http://localhost:8790

Click Submit (query) there and the server logs actual=QUERY. See the README for details.