Выполняет запросы к внешнему серверу.
Параметры:
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 out
status
— числовой код состояния 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) }}.