aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlformelement.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2014-12-30 11:53:02 -0500
committerJosh Matthews <josh@joshmatthews.net>2015-02-04 13:34:06 +0000
commit19fbb9e568c6011abcfe883538ce03d9d2f42995 (patch)
tree83269ddd1be36d8bf47f7932fba38005837f7217 /components/script/dom/htmlformelement.rs
parent3239aeacdc5fe23dda1f9bde2b4cd5203084fa12 (diff)
downloadservo-19fbb9e568c6011abcfe883538ce03d9d2f42995.tar.gz
servo-19fbb9e568c6011abcfe883538ce03d9d2f42995.zip
Set the Content-Type header when submitting a urlencoded form.
Diffstat (limited to 'components/script/dom/htmlformelement.rs')
-rw-r--r--components/script/dom/htmlformelement.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index 5f0ec3f212a..3543c9a26fc 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -23,6 +23,8 @@ use dom::htmlbuttonelement::{HTMLButtonElement};
use dom::htmltextareaelement::{HTMLTextAreaElement, HTMLTextAreaElementHelpers};
use dom::node::{Node, NodeHelpers, NodeTypeId, document_from_node, window_from_node};
use hyper::method::Method;
+use hyper::header::common::ContentType;
+use hyper::mime;
use servo_msg::constellation_msg::LoadData;
use util::str::DOMString;
use script_task::{ScriptChan, ScriptMsg};
@@ -186,12 +188,17 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> {
let _target = submitter.target();
// TODO: Handle browsing contexts, partially loaded documents (step 16-17)
+ let mut load_data = LoadData::new(action_components);
+
let parsed_data = match enctype {
- FormEncType::UrlEncoded => serialize(form_data.iter().map(|d| (d.name.as_slice(), d.value.as_slice()))),
+ FormEncType::UrlEncoded => {
+ let mime: mime::Mime = "application/x-www-form-urlencoded".parse().unwrap();
+ load_data.headers.set(ContentType(mime));
+ serialize(form_data.iter().map(|d| (d.name.as_slice(), d.value.as_slice())))
+ }
_ => "".to_owned() // TODO: Add serializers for the other encoding types
};
- let mut load_data = LoadData::new(action_components);
// Step 18
match (scheme.as_slice(), method) {
(_, FormMethod::FormDialog) => return, // Unimplemented