12345678910111213141516171819202122232425262728293031323334353637 |
- /**
- * Parses the result of XMLHttpRequest's getAllResponseHeaders() method into
- * a dictionary.
- *
- * @function parseResponseHeaders
- *
- * @param {String} headerString The header string returned by getAllResponseHeaders(). The format is
- * described here: http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders()-method
- * @returns {Object} A dictionary of key/value pairs, where each key is the name of a header and the corresponding value
- * is that header's value.
- *
- * @private
- */
- function parseResponseHeaders(headerString) {
- const headers = {};
- if (!headerString) {
- return headers;
- }
- const headerPairs = headerString.split("\u000d\u000a");
- for (let i = 0; i < headerPairs.length; ++i) {
- const headerPair = headerPairs[i];
- // Can't use split() here because it does the wrong thing
- // if the header value has the string ": " in it.
- const index = headerPair.indexOf("\u003a\u0020");
- if (index > 0) {
- const key = headerPair.substring(0, index);
- const val = headerPair.substring(index + 2);
- headers[key] = val;
- }
- }
- return headers;
- }
- export default parseResponseHeaders;
|