- From: Dmitry Titov <dimich@chromium.org>
- Date: Sun, 14 Feb 2010 18:04:47 -0800
- To: Jonas Sicking <jonas@sicking.cc>
- Cc: Webapps WG <public-webapps@w3.org>
- Message-ID: <28040fc61002141804g17672fcaqb3fb5be25d753d98@mail.gmail.com>
On Sat, Feb 13, 2010 at 6:44 PM, Jonas Sicking <jonas@sicking.cc> wrote: > On Sat, Feb 13, 2010 at 6:02 PM, Dmitry Titov <dimich@chromium.org> wrote: > > On Fri, Feb 12, 2010 at 5:32 PM, Jonas Sicking <jonas@sicking.cc> wrote: > >> > >> Hi WebApps fans! > >> > >> Working on implementing FormData and ran into a couple of questions. > >> > >> First of all, I assume that it is intended that a FromData object can > >> be submitted several times. I.e. that the following code is ok: > >> > >> fd = new FormData; > >> fd.append("name1", "foo"); > >> xhr1 = new XMLHttpRequest; > >> xhr1.open(...); > >> xhr1.send(fd); > >> fd.append("name2", "bar"); > >> xhr2 = new XMLHttpRequest; > >> xhr2.open(...); > >> xhr2.send(fd); > >> > >> where the first XHR will send 1 name/value pair, and the second XHR > >> will send 2. I do think this should be allowed, but I wanted to make > >> sure others agreed. > > > > What can be a reason to disallow this? FormData is just a collection of > data > > objects. So assuming those XHR objects are sync, the code should work as > you > > described. > > It complicates implementation a tiny amount, but IMHO not enough to > disallow it. > > > Interesting question though - what happens if XHR is async and the > content > > of FormData changes while async operation is in progress. By analogy with > > scenario when underlying file of Blob object changes while async reading > > operation is in progress, would it be reasonable to fail the send and > return > > 'error' ProgressEvent? > > I don't think raising an 'error' event should be correct, no. In my > example above I think the two requests should succeed successfully, > and the first one should submit one name/value pairs, and the second > should submit two. Does it mean that implementation should basically produce actual form data synchronously (do a deep copy) at the moment of xhr.send() even if the xhr is asynchronous? In case FormData includes Blobs backed by files on the disk it may be prohibitive. > >> Second, what encoding should be used when submitting a FromData > >> object? A few options are: > >> * Always use UTF-8 > >> * Allow a mimetype to be set on the FormData object, using a property > >> or constructor argument > >> * Use the charset mime parameter specified on the content-type header > >> set using xhr.setRequestHeader > >> > > > > Having a way to specify encoding could be only useful for writing client > > code against legacy site that takes charset-encoded form data and ignores > > the charset parameter of content-type header of the request. That seems > rare > > these days. It would be way simpler to only deal with UTF-8, imo. > > Does any browser include a charset parameter for multipart/form-data > submissions? Firefox does not and last we added it it broke a bunch of > sites IIRC. That was a while ago though. > > / Jonas >
Received on Monday, 15 February 2010 02:05:18 UTC