Класс HttpRequest
Запрос XHR на стороне клиента для получения данных из URL, формально известный как XMLHttpRequest.
HttpRequest можно использовать для получения данных по HTTP и FTP протоколам, и он полезен для обновлений страниц в стиле AJAX.
Самый простой способ получить содержимое текстового файла, например, файла в формате JSON, — это использовать getString. Например, следующий код получает содержимое файла JSON и выводит его длину:
var path = 'myData.json';
HttpRequest.getString(path)
.then((String fileContents) {
print(fileContents.length);
})
.catchError((Error error) {
print(error.toString());
});
Получение данных с других серверов
По соображениям безопасности браузеры накладывают ограничения на запросы, выполняемые встроенными приложениями. В соответствии с поведением по умолчанию этого класса код, отправляющий запрос, должен быть расположен в том же источнике (имя домена, порт и протокол прикладного уровня), что и запрашиваемый ресурс. В примере выше файл myData.json должен находиться в той же директории, что и приложение, которое его использует. Вы можете объехать это ограничение, используя заголовки CORS или JSONP.
Другие ресурсы
- Динамическое получение данных, учебник из Игры Дартс, демонстрирует два разных способа использования HttpRequest для получения файла JSON.
- Получение ввода с формы, другой учебник из Игры Дартс, демонстрирует использование HttpRequest с пользовательским сервером.
- Статья Dart об использовании HttpRequests
- XMLHttpRequest JS
- Использование XMLHttpRequest
- Наследование
- Object
- JSObject
- DartHtmlDomObject
- EventTarget
- HttpRequestEventTarget
- HttpRequest
- Аннотации
- @DomName('XMLHttpRequest')
Константы
- DONE → int @DocsEditable(), @DomName('XMLHttpRequest.DONE')
-
4 - HEADERS_RECEIVED → int @DocsEditable(), @DomName('XMLHttpRequest.HEADERS_RECEIVED')
-
2 - LOADING → int @DocsEditable(), @DomName('XMLHttpRequest.LOADING')
-
3 - OPENED → int @DocsEditable(), @DomName('XMLHttpRequest.OPENED')
-
1 - readyStateChangeEvent → EventStreamProvider<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequest.readystatechangeEvent')
-
Статический фабричный метод, предназначенный для экспонирования
readystatechangeсобытий обработчикам событий, которые необязательно являются экземплярами HttpRequest.const EventStreamProvider<ProgressEvent>('readystatechange') - UNSENT → int @DocsEditable(), @DomName('XMLHttpRequest.UNSENT')
-
0
Статические свойства
- instanceRuntimeType → Type @Deprecated("Только для внутреннего использования"), только для чтения
- supportsCrossOrigin → bool только для чтения
-
Проверяет, поддерживает ли текущая платформа запросы к другим источникам.
- supportsLoadEndEvent → bool только для чтения
-
Проверяет, поддерживает ли текущая платформа событие LoadEnd.
- supportsOverrideMimeType → bool только для чтения
-
Проверяет, поддерживает ли текущая платформа метод overrideMimeType.
- supportsProgressEvent → bool только для чтения
-
Проверяет, поддерживает ли текущая платформа событие Progress.
Статические методы
- getString(
String url, { bool withCredentials, void onProgress(ProgressEvent e) }) → Future<String> -
Создает запрос GET для указанного
url. - postFormData(
String url, Map<String, String> data, { bool withCredentials, String responseType, Map<String, String> requestHeaders, void onProgress(ProgressEvent e) }) → Future<HttpRequest> -
Выполняет запрос POST на сервер с указанными данными, закодированными как данные формы.
- request(
String url, { String method, bool withCredentials, String responseType, String mimeType, Map<String, String> requestHeaders, sendData, void onProgress(ProgressEvent e) }) → Future<HttpRequest> -
Создает и отправляет запрос URL для указанного
url. - requestCrossOrigin(
String url, { String method, String sendData }) → Future<String> @Experimental() -
Выполняет запрос к другому источнику по указанному URL.
Конструкторы
- HttpRequest() factory
-
Общий конструктор для любого типа запроса (GET, POST и т.д.).
- HttpRequest.internal_()
Свойства
- onReadyStateChange → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequest.onreadystatechange'), только для чтения
-
Обработчики событий, которые уведомляются каждый раз, когда значения объекта
HttpRequestизменяются. - readyState → int @DocsEditable(), @DomName('XMLHttpRequest.readyState'), только для чтения
-
Индикатор текущего состояния запроса:
- response → Объект @DocsEditable(), @DomName('XMLHttpRequest.response'), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), только для чтения
-
Данные, полученные в ответ на запрос.
- responseHeaders → Map<Строка, Строка> только для чтения
-
Возвращает все заголовки ответа в виде карты ключ-значение.
- responseText → Строка @DocsEditable(), @DomName('XMLHttpRequest.responseText'), только для чтения
-
Ответ в формате строки или пустая строка при ошибке.
- responseType → Строка @DocsEditable(), @DomName('XMLHttpRequest.responseType'), чтение/запись
-
Указание для сервера желаемого формата ответа.
- responseUrl → Строка @DocsEditable(), @DomName('XMLHttpRequest.responseURL'), @Experimental(), только для чтения
- responseXml → Документ @DocsEditable(), @DomName('XMLHttpRequest.responseXML'), только для чтения
-
Ответ на запрос, или null при ошибке.
- status → int @DocsEditable(), @DomName('XMLHttpRequest.status'), только для чтения
-
Код HTTP результата запроса (200, 404 и т. д.). См. также: HTTP коды состояния
- statusText → Строка @DocsEditable(), @DomName('XMLHttpRequest.statusText'), только для чтения
-
Строковое представление ответа на запрос (например, "200 OK"). См. также: HTTP коды состояния
- timeout → int @DocsEditable(), @DomName('XMLHttpRequest.timeout'), @Experimental(), чтение/запись
-
Время в миллисекундах, после которого запрос автоматически прерывается.
- upload → HttpRequestUpload @DocsEditable(), @DomName('XMLHttpRequest.upload'), @Unstable(), только для чтения
-
Объект, который может содержать обработчики событий для отслеживания прогресса запроса. Срабатывающие события будут членами
HttpRequestUploadEvents. - withCredentials → bool @DocsEditable(), @DomName('XMLHttpRequest.withCredentials'), чтение/запись
-
Истинно, если для межсайтовых запросов должны использоваться учетные данные, такие как куки или заголовки авторизации; ложно в противном случае.
- hashCode → int только для чтения, унаследованно
- on → События только для чтения, унаследованно
-
Это вспомогательный доступ к потокам событий, который следует использовать только тогда, когда явный доступтор недоступен.
- onAbort → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequestEventTarget.onabort'), @Experimental(), только для чтения, унаследованно
-
Поток событий
abort, обрабатываемых этим объектомHttpRequestEventTarget. - onError → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequestEventTarget.onerror'), @Experimental(), только для чтения, унаследованно
-
Поток событий
error, обрабатываемых этим объектомHttpRequestEventTarget. - onLoad → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequestEventTarget.onload'), @Experimental(), только для чтения, унаследованно
-
Поток событий
load, обрабатываемых этим объектомHttpRequestEventTarget. - onLoadEnd → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequestEventTarget.onloadend'), @Experimental(), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), только для чтения, унаследованно
-
Поток событий
loadend, обрабатываемых этим объектомHttpRequestEventTarget. - onLoadStart → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequestEventTarget.onloadstart'), @Experimental(), только для чтения, унаследованно
-
Поток событий
loadstart, обрабатываемых этим объектомHttpRequestEventTarget. - onProgress → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequestEventTarget.onprogress'), @Experimental(), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), только для чтения, унаследованно
-
Поток событий
progress, обрабатываемых этим объектомHttpRequestEventTarget. - onTimeout → Поток<ProgressEvent> @DocsEditable(), @DomName('XMLHttpRequestEventTarget.ontimeout'), @Experimental(), только для чтения, унаследованно
-
Поток событий
timeout, обрабатываемых этим объектомHttpRequestEventTarget. - runtimeType → Тип только для чтения, унаследованно
-
Представление типа объекта во время выполнения.
Операторы
- operator ==(
other) → bool унаследованно -
Оператор равенства.
Методы
- abort(
) → void @DocsEditable(), @DomName('XMLHttpRequest.abort') -
Остановить текущий запрос.
- getAllResponseHeaders(
) → String @DocsEditable(), @DomName('XMLHttpRequest.getAllResponseHeaders'), @Unstable() -
Получить все заголовки ответа от запроса.
- getResponseHeader(
String name) → String @DocsEditable(), @DomName('XMLHttpRequest.getResponseHeader'), @Unstable() -
Возвращает заголовок ответа с именем
header, или null, если не найден. - open(
String method, String url, { bool async, String user, String password }) → void @DocsEditable(), @DomName('XMLHttpRequest.open') -
Указать желаемый
url, иmethodдля использования при выполнении запроса. - overrideMimeType(
String mime) → void @DocsEditable(), @DomName('XMLHttpRequest.overrideMimeType'), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.SAFARI) -
Указать конкретный тип MIME (такой как
text/xml) для ответа. - send(
[body_OR_data ]) → void - setRequestHeader(
String name, String value) → void @DocsEditable(), @DomName('XMLHttpRequest.setRequestHeader') -
Устанавливает значение заголовка HTTP запроса.
- addEventListener(
String type, EventListener listener, [ bool useCapture ]) → void inherited - dispatchEvent(
Event event) → bool @DocsEditable(), @DomName('EventTarget.dispatchEvent'), inherited - noSuchMethod(
Invocation invocation) → dynamic inherited -
Вызывается, когда обращаются к несуществующему методу или свойству.
- removeEventListener(
String type, EventListener listener, [ bool useCapture ]) → void inherited - toString(
) → String inherited -
Возвращает результат метода JavaScript-объектов
toString.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-html/HttpRequest-class.html