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.
This commit is contained in:
ahocevar
2013-05-16 21:11:32 +02:00
parent e50c314c33
commit 22c4508c27

View File

@@ -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);
}