From 22c4508c27d36ba87cc82b431122e2a60903a2dc Mon Sep 17 00:00:00 2001 From: ahocevar Date: Thu, 16 May 2013 21:11:32 +0200 Subject: [PATCH] Don't rely on responseXML, also use responseText On servers that report an incorrect content type for XML documents, responseXML will be empty. In these cases we need to use responseText instead. This change also prevents readNode calls with empty data. --- src/ol/parser/kml.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/ol/parser/kml.js b/src/ol/parser/kml.js index 8be3b5f61a..c48ed61ce0 100644 --- a/src/ol/parser/kml.js +++ b/src/ol/parser/kml.js @@ -877,12 +877,17 @@ ol.parser.KML.prototype.parseLinks = function(deferreds, obj, done) { var me = this; goog.events.listen(xhr, goog.net.EventType.COMPLETE, function(e) { if (e.target.isSuccess()) { - var data = e.target.getResponseXml(); - goog.dispose(e.target); - if (data && data.nodeType == 9) { - data = data.documentElement; + var data = e.target.getResponseXml() || e.target.getResponseText(); + if (typeof data == 'string') { + data = goog.dom.xml.loadXml(data); + } + goog.dispose(e.target); + if (data) { + if (data.nodeType == 9) { + data = data.documentElement; + } + me.readNode(data, obj); } - me.readNode(data, obj); me.parseLinks(deferreds, obj, done); this.callback(data); }