At Jim Fulton's request (actually, as a compromise :-), default the

content-type to application/x-www-form-urlencoded only when the method
is POST.  Ditto for when the content-type is unrecognized -- only
fall back to urlencoded with POST.
This commit is contained in:
Guido van Rossum 1999-06-02 18:44:22 +00:00
parent 094189f108
commit ce900defc5
1 changed files with 2 additions and 2 deletions

View File

@ -841,7 +841,7 @@ class FieldStorage:
# but it happens to be something we don't understand. # but it happens to be something we don't understand.
if self.headers.has_key('content-type'): if self.headers.has_key('content-type'):
ctype, pdict = parse_header(self.headers['content-type']) ctype, pdict = parse_header(self.headers['content-type'])
elif self.outerboundary: elif self.outerboundary or method != 'POST':
ctype, pdict = "text/plain", {} ctype, pdict = "text/plain", {}
else: else:
ctype, pdict = 'application/x-www-form-urlencoded', {} ctype, pdict = 'application/x-www-form-urlencoded', {}
@ -867,7 +867,7 @@ class FieldStorage:
self.read_urlencoded() self.read_urlencoded()
elif ctype[:10] == 'multipart/': elif ctype[:10] == 'multipart/':
self.read_multi(environ, keep_blank_values, strict_parsing) self.read_multi(environ, keep_blank_values, strict_parsing)
elif self.outerboundary: elif self.outerboundary or method != 'POST':
# we're in an inner part, but the content-type wasn't something we # we're in an inner part, but the content-type wasn't something we
# understood. default to read_single() because the resulting # understood. default to read_single() because the resulting
# FieldStorage won't be a mapping (and doesn't need to be). # FieldStorage won't be a mapping (and doesn't need to be).