X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=js%2Fpz2.js;fp=js%2Fpz2.js;h=7948ea0bfd67ecb805fb317ec59bd1c9c61a9509;hb=d0657f30c54ded71a43b9f6ea565cec0291a3051;hp=bae191d5a873953a2b80a0a0b0879ca9391f20cf;hpb=b48a2704a0d3121ce892ad447a07d0792000d8fe;p=pazpar2-moved-to-github.git diff --git a/js/pz2.js b/js/pz2.js index bae191d..7948ea0 100644 --- a/js/pz2.js +++ b/js/pz2.js @@ -707,6 +707,7 @@ var pzHttpRequest = function ( url, errorHandler ) { } }; + pzHttpRequest.prototype = { safeGet: function ( params, callback ) @@ -805,17 +806,32 @@ pzHttpRequest.prototype = this.request.responseXML == null) { if (this.request.responseText != null) { //assume JSON - + var json = null; - if (this.JSON == null) - json = eval("(" + this.request.responseText + ")"); + var text = this.request.responseText; + if (typeof window.JSON == "undefined") + json = eval("(" + text + ")"); else { try { - json = JSON.parse(this.request.responseText, null); + json = JSON.parse(text); } catch (e) { - json = eval("(" + this.request.responseText + ")"); + // Safari: eval will fail as well. Considering trying JSON2 (non-native implementation) instead + /* DEBUG only works in mk2-mobile + if (document.getElementById("log")) + document.getElementById("log").innerHTML = "" + e + " " + length + ": " + text; + */ + try { + json = eval("(" + text + ")"); + } + catch (e) { + /* DEBUG only works in mk2-mobile + if (document.getElementById("log")) + document.getElementById("log").innerHTML = "" + e + " " + length + ": " + text; + */ + } } + } this.callback(json, "json"); } else { var err = new Error("XML response is empty but no error " +