<form> submissions — live demoRepro for whatwg/html#12594. Each form submits to a small echo.php, which reports the HTTP method it actually received.
Three identical forms; only the method attribute differs. Click each and read the
big method on the result page.
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.
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.