diff --git a/src/tilesource.js b/src/tilesource.js index 135053de..431b37d3 100644 --- a/src/tilesource.js +++ b/src/tilesource.js @@ -629,7 +629,11 @@ function processResponse( xhr ){ data = xhr.responseText; } }else if( responseText.match(/\s*[\{\[].*/) ){ - data = $.parseJSON(responseText); + try{ + data = $.parseJSON(responseText); + } catch(e){ + data = responseText; + } }else{ data = responseText; } diff --git a/src/viewer.js b/src/viewer.js index f59bf8a7..91317cd3 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -2114,19 +2114,6 @@ function _getSafeElemSize (oElement) { } -/* - * @function - * @private - */ -function _isJSON(str){ - try{ - JSON.parse(str); - } catch (e) { - return false; - } - return true; -} - /** * @function * @private @@ -2141,8 +2128,13 @@ function getTileSourceImplementation( viewer, tileSource, imgOptions, successCal if ( tileSource.match( /^\s*<.*>\s*$/ ) ) { tileSource = $.parseXml( tileSource ); //json should start with "{" or "[" and end with "}" or "]" - } else if ( _isJSON(tileSource) ) { - tileSource = $.parseJSON(tileSource); + } else if ( tileSource.match(/^\s*[\{\[].*[\}\]]\s*$/ ) ) { + try { + var tileSourceJ = $.parseJSON(tileSource); + tileSource = tileSourceJ; + } catch (e) { + //tileSource = tileSource; + } } }