Я использую сервис, который отправит обратно XML с данными в ответ. Как правило, все работает нормально, но иногда сервер неправильно отправляет пустой XML без данных.
var isokLayer = $http({
method: 'GET',
url: URLs.GEOSERVER_ISOK
}).then(function(response) {
if (response.status == 200) {
do {
var formatter = new ol.format.WMTSCapabilities();
} while (response.data == null);
var datas = (formatter.read(response.data));
var options = ol.source.WMTS.optionsFromCapabilities(datas, {
layer: 'CIEN',
matrixSet: 'EPSG:2180',
});
var source = new ol.source.WMTS(options);
for (var z = 0; z < source.getTileGrid().getMatrixIds().length; ++z) {
source.getTileGrid().getOrigin(z).reverse();
}
var result = new ol.layer.Tile({
source: source,
visible: false,
xarisLayerType: 'baseLayer',
xarisLayerName: 'NMT LPIS',
xarisLayerSampleIcon: 'assets/styles/img/baseLayerSample/nmt.png',
zIndex: ConfigService.getBaseLayerZIndex()
});
map.addLayer(result);
layerList.push(result);
} else {
console.log(response.status);
}
}, function(err) {
console.log(err);
});
Как я могу повторить http-вызов внутри моего successCallback, если response.data равны нулю? Я попытался повторить это в errorCallback, но response.status всегда равно 200 и функция ошибки никогда не выполняется.