- From: Jarred Nicholls <jarred@sencha.com>
- Date: Sun, 11 Dec 2011 09:08:30 -0500
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: public-webapps@w3.org
- Message-ID: <CANufG2OiJQHQMCNdbipFevh+oMEwc1XnJGPuLR89yYUH1PtSuQ@mail.gmail.com>
On Sun, Dec 11, 2011 at 5:08 AM, Tab Atkins Jr. <jackalmage@gmail.com>wrote: > On Sat, Dec 10, 2011 at 9:10 PM, Jarred Nicholls <jarred@sencha.com> > wrote: > > I'd like to bring up an issue with the spec with regards to responseText > + > > the new "json" responseType. Currently it is written that responseText > > should throw an exception if the responseType is not "" or "text". I > would > > argue that responseText should also return the plain text when the type > is > > "json". > > > > Take the scenario of debugging an application, or an application that > has a > > Error Reporting feature; If XHR.response returns "null", meaning the JSON > > payload was not successfully parsed and/or was invalid, there is no > means to > > retrieve the plain text that caused the error. "null" is rather useless > at > > that point. See my WebKit bug for more > > context: https://bugs.webkit.org/show_bug.cgi?id=73648 > > > > For legacy reasons, responseText and responseXML continue to work > together > > despite the responseType that is set. In other words, a responseType of > > "text" still allows access to responseXML, and responseType of "document" > > still allows access to responseText. And it makes sense that this is > so; if > > a strong-typed Document from responseXML is unable to be created, > > responseText is the fallback to get the payload and either debug it, > submit > > it as an error report, etc. I would argue that "json" responseType > would be > > more valuable if it behaved the same. Unlike the binary types > (ArrayBuffer, > > Blob), "json" and "document" are backed by a plain text payload and > > therefore responseText has value in being accessible. > > > > If all we can get on a bad JSON response is "null", I think there is > little > > incentive for anyone to use the "json" type when they can use "text" and > > JSON.parse it themselves. > > What's the problem with simply setting responseType to 'text' when > debugging? > This does not satisfy the use cases of error reporting w/ contextual data nor the use case of debugging a runtime error in a production environment. > > A nice benefit of *not* presenting the text by default is that the > browser can throw the text away immediately, rather than keeping > around the payload in both forms and paying for it twice in memory > (especially since the text form will, I believe, generally be larger > than the JSON form). > Yes I agree, and it's what everyone w/ WebKit wants to try and accomplish. A good compromise would be to only throw it away (and thus restrict responseText access) upon the first successful parse when accessing .response. > > ~TJ > -- ................................................................ *Sencha* Jarred Nicholls, Senior Software Architect @jarrednicholls <http://twitter.com/jarrednicholls>
Received on Sunday, 11 December 2011 14:09:20 UTC