Commit 575e36c
committed
feat(web): hand an unscripted read its query as one URLSearchParams
A `method="get"` form submit replaces the action url's query with the form's
fields — which is why only an address in the path survives one — so what
arrives on an unscripted read is the form, not an argument encoding. Those
fields now reach the function as a lone `URLSearchParams`, the read-side
mirror of a no-JS form post decoding to a lone `FormData`:
<form method="get" action={search.url}>
<input name="q" />
</form>
<!-- GET /_server/abc-0?q=solid -->
HEAD reads it the same way, so a HEAD to a form url describes the GET response
that url would produce, arguments included.
The two readings of a query overlap in exactly one place: a bound action url
followed as a plain link carries an `args` that decodes as an argument array,
while a form field named `args` does not — so a decode failure falls through
to the form reading, and only there. A scripted caller sent an encoding, so
its failure stays a real one.1 parent 5ec256c commit 575e36c
4 files changed
Lines changed: 91 additions & 8 deletions
File tree
- .changeset
- documentation/solid-2.0
- packages/web
- server-functions/src
- test/server
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
11 | 13 | | |
12 | 14 | | |
13 | 15 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
121 | | - | |
| 121 | + | |
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
868 | 868 | | |
869 | 869 | | |
870 | 870 | | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
871 | 878 | | |
872 | 879 | | |
873 | 880 | | |
874 | | - | |
875 | | - | |
876 | | - | |
877 | | - | |
878 | | - | |
879 | | - | |
880 | | - | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
881 | 898 | | |
882 | 899 | | |
883 | 900 | | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
884 | 904 | | |
885 | 905 | | |
886 | 906 | | |
| |||
Lines changed: 61 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
174 | 218 | | |
175 | 219 | | |
176 | 220 | | |
| |||
198 | 242 | | |
199 | 243 | | |
200 | 244 | | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
201 | 262 | | |
0 commit comments