1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 * @fileoverview Implements a simple XmlHttpRequest-based text document
13 * A fetcher of text files.
16 function TextFetcher() {}
19 * @param {string} url The URL to fetch.
20 * @param {string?} opt_method The HTTP method to use (default GET)
21 * @param {string?} opt_body The request body
22 * @return {!Promise<string>} A promise for the fetched text. In case of an
23 * error, this promise is rejected with an HTTP status code.
25 TextFetcher.prototype.fetch = function(url, opt_method, opt_body) {};
29 * @implements {TextFetcher}
31 function XhrTextFetcher() {
35 * @param {string} url The URL to fetch.
36 * @param {string?} opt_method The HTTP method to use (default GET)
37 * @param {string?} opt_body The request body
38 * @return {!Promise<string>} A promise for the fetched text. In case of an
39 * error, this promise is rejected with an HTTP status code.
41 XhrTextFetcher.prototype.fetch = function(url, opt_method, opt_body) {
42 return new Promise(function(resolve, reject) {
43 var xhr = new XMLHttpRequest();
44 var method = opt_method || 'GET';
45 xhr.open(method, url, true);
46 xhr.onloadend = function() {
47 if (xhr.status != 200) {
51 resolve(xhr.responseText);
53 xhr.onerror = function() {
54 // Treat any network-level errors as though the page didn't exist.