aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle J. McKay <mackyle@gmail.com>2017-08-23 20:14:23 +0000
committerKyle J. McKay <mackyle@gmail.com>2017-08-23 20:14:23 +0000
commit89e60cc474fca9050048cf5cd9444f8dd7070cf7 (patch)
tree7833a29a279ea67fbfc3f248f97aa699e71768bf
parentfile.c: compute correct base URL when not absolute (diff)
downloadw3m-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>
-rw-r--r--form.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/form.c b/form.c
index 0605513..cc5e3d2 100644
--- a/form.c
+++ b/form.c
@@ -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