Выполняет запросы к внешнему серверу.
Параметры:
-
url— адрес сервера в виде строки, может содержать параметры, которые будут заполнены из поляquery, переданного в параметреsettings. -
settings— валидный JSON с параметрами запроса:method— http-метод запроса:GET,POST,PUTи т.д.query— параметры запроса для подстановки вurl.body— тело запроса.form— форма.headers— http-заголовки.datаType— тип возвращаемых данных:json,xmlилиtext.timeout— таймаут выполнения запроса в миллисекундах.
Возвращаемый объект имеет следующие поля:
isOk— при успешном выполнении запроса принимает значениеtrue. При ошибке внутри сервиса или при истечении таймаута принимает значениеfalse.response— полный дамп ответа. При ошибке внутри сервиса или при истечении таймаута запроса принимает значение{}. Может быть использован для получения http-заголовков.error— строка с описанием ошибки. В случае успешного запроса принимает значениеundefined. При истечении таймаута принимает значениеRead timed outstatus— числовой код состояния http (например, 200 или 401). При ошибке внутри сервиса или при истечении таймаута запроса принимает значение-1.
Обратите внимание на поведение http-вызовов при различных datаType и Content-Type:
| Content-Type | dataType | Поведение |
|---|---|---|
| задан | задан | Исходящему запросу устанавливается заголовок Content-Type с заданным значением. Ответ от сервера обрабатывается в соответствии с заданным форматом. |
| задан | не задан | Исходящему запросу устанавливается заголовок Content-Type с заданным значением. Ответ от сервера обрабатывается в формате, полученным в заголовке ответа Content-Type. |
| не задан | задан | Исходящему запросу устанавливается заголовок Content-Type со значением определяемым по dataType: json → application/json, xml → application/xml,text → text/plain,другое → application/json. Ответ от сервера обрабатывается в соответствии с заданным форматом. |
| не задан | не задан,guess | Исходящему запросу устанавливается заголовок Content-Type: application/json. Ответ от сервера обрабатывается в формате, полученным в заголовке ответа Content-Type. |
Для вызова метода API, который принимает входные параметры в формате HTML-форм , в параметрах http-вызова используется объект form вместо body.
Такой вызов будет иметь заголовок Content-Type со значением application/x-www-form-urlencoded и соответствующим образом закодированные поля формы в теле запроса.
Так как поля формы передаются в теле запроса, использование метода GET не предусмотрено.
Примеры
В примере ниже $fetch.query делает запрос, по указанному url с заданными параметрами:
state: getId
q!: запрос
script:
var url = "https://example.ru/patch";
var settings = {method: "PATCH"};
$fetch.query(url, settings)
.then(function (response) {
if (response.isSuccessful()) {
$temp.answer = response.serialize();
} else {
$temp.answer = response.serialize();
}
$jsapi.log("$$$$$$$ log: " + toPrettyString($temp.answer));
});
a: id = {{ toPrettyString($temp.answer.content) }}.