diff options
author | Josh Matthews <josh@joshmatthews.net> | 2014-12-30 11:53:02 -0500 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2015-02-04 13:34:06 +0000 |
commit | 19fbb9e568c6011abcfe883538ce03d9d2f42995 (patch) | |
tree | 83269ddd1be36d8bf47f7932fba38005837f7217 /components/script/dom/htmlformelement.rs | |
parent | 3239aeacdc5fe23dda1f9bde2b4cd5203084fa12 (diff) | |
download | servo-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.rs | 11 |
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 |