Don't alter query string when submitting form by POST.

This commit is contained in:
Josh Matthews 2018-12-03 01:45:58 -05:00
parent 27c25116d3
commit 1c7cfafcc5
4 changed files with 8 additions and 5 deletions

View file

@ -459,7 +459,8 @@ impl HTMLFormElement {
.headers
.typed_insert(ContentType::from(mime::APPLICATION_WWW_FORM_URLENCODED));
self.set_encoding_override(load_data.url.as_mut_url().query_pairs_mut())
let mut url = load_data.url.clone();
self.set_encoding_override(url.as_mut_url().query_pairs_mut())
.clear()
.extend_pairs(
form_data
@ -467,7 +468,7 @@ impl HTMLFormElement {
.map(|field| (field.name.clone(), field.replace_value(charset))),
);
load_data.url.query().unwrap_or("").to_string().into_bytes()
url.query().unwrap_or("").to_string().into_bytes()
},
FormEncType::FormDataEncoded => {
let mime: Mime = format!("multipart/form-data; boundary={}", boundary)

View file

@ -452699,7 +452699,7 @@
"support"
],
"common/form-submission.py": [
"467875453c9dc64aac51add3f4a617d941820972",
"b296ac44c57c658ca9e3189e9f79b0f80677acba",
"support"
],
"common/get-host-info.sub.js": [
@ -624959,7 +624959,7 @@
"testharness"
],
"html/semantics/forms/form-submission-0/submit-entity-body.html": [
"8363f39ff32cd165a28086b3c594b55a79ced8e5",
"a52bb0dcd2080eabb44ab1ddca379da6a5e5ea9a",
"testharness"
],
"html/semantics/forms/form-submission-0/submit-file.sub.html": [

View file

@ -6,5 +6,7 @@ def main(request, response):
else:
result = request.POST.first('foo') == 'bar'
result = result and request.url_parts.query == 'query=1'
return ([("Content-Type", "text/plain")],
"OK" if result else "FAIL")

View file

@ -96,7 +96,7 @@ function run_simple_test() {
var testframe = document.getElementById("testframe");
var testdocument = testframe.contentWindow.document;
testdocument.body.innerHTML =
"<form id=testform method=post action=\"form-submission.py\" enctype=\"" + test_obj.enctype + "\">" +
"<form id=testform method=post action=\"form-submission.py?query=1\" enctype=\"" + test_obj.enctype + "\">" +
test_obj.input +
test_obj.submitelement +
"</form>";