From d0657f30c54ded71a43b9f6ea565cec0291a3051 Mon Sep 17 00:00:00 2001 From: Dennis Schafroth Date: Mon, 28 Jun 2010 13:02:57 +0200 Subject: [PATCH] Clean up of JSON parsing. Comment out the mk2-mobile debug stuff. Will remove when problem is solved. --- js/pz2.js | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) 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 " + -- 1.7.10.4