12345678910111213141516171819202122232425262728293031323334353637 |
- /**
- * Gets what should be in the `response` property of the XHR. However,
- * since we still support the final versions of IE, we need to do a little
- * checking here to make sure that we get the right thing back. Consequently,
- * we need to do a JSON.parse() in here, which *could* throw if the response
- * isn't valid JSON.
- *
- * This is used both in creating an AjaxResponse, and in creating certain errors
- * that we throw, so we can give the user whatever was in the response property.
- *
- * @param xhr The XHR to examine the response of
- */
- export function getXHRResponse(xhr: XMLHttpRequest) {
- switch (xhr.responseType) {
- case 'json': {
- if ('response' in xhr) {
- return xhr.response;
- } else {
- // IE
- const ieXHR: any = xhr;
- return JSON.parse(ieXHR.responseText);
- }
- }
- case 'document':
- return xhr.responseXML;
- case 'text':
- default: {
- if ('response' in xhr) {
- return xhr.response;
- } else {
- // IE
- const ieXHR: any = xhr;
- return ieXHR.responseText;
- }
- }
- }
- }
|