diff options
author | Kyle J. McKay <mackyle@gmail.com> | 2017-08-23 20:14:23 +0000 |
---|---|---|
committer | Kyle J. McKay <mackyle@gmail.com> | 2017-08-23 20:14:23 +0000 |
commit | 89e60cc474fca9050048cf5cd9444f8dd7070cf7 (patch) | |
tree | 7833a29a279ea67fbfc3f248f97aa699e71768bf /form.c | |
parent | file.c: compute correct base URL when not absolute (diff) | |
download | w3m-89e60cc474fca9050048cf5cd9444f8dd7070cf7.tar.gz w3m-89e60cc474fca9050048cf5cd9444f8dd7070cf7.zip |
form.c: do not gratuitously turn GET into POST
When encountering a <form ...> tag that contains these values:
method="get" enctype="multipart/form-data"
Do not transform the method into POST to accomodate enctype.
Instead behave in the compatible way that all other browsers
behave in this instance and ignore the enctype parameter
(treating it as the default application/x-www-form-urlencoded)
and perform a "GET" just as the method parameter requests.
This behavior produces far more compatible results than
gratuitously changing the "get" into a "post" which can
result in unexpected "405 Method Not Allowed" errors.
Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Diffstat (limited to 'form.c')
-rw-r--r-- | form.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -56,10 +56,9 @@ newFormList(char *action, char *method, char *charset, char *enctype, m = FORM_METHOD_INTERNAL; /* unknown method is regarded as 'get' */ - if (enctype != NULL && !strcasecmp(enctype, "multipart/form-data")) { + if (m != FORM_METHOD_GET && enctype != NULL && + !strcasecmp(enctype, "multipart/form-data")) { e = FORM_ENCTYPE_MULTIPART; - if (m == FORM_METHOD_GET) - m = FORM_METHOD_POST; } #ifdef USE_M17N |