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.