user1074316
user1074316

Reputation: 133

How do I use JSON.parse in Internet Explorer 9 with json2.js?

I am using JSON.parse to turn a JSON string into a JSON object. It works in Google Chrome, Firefox, Opera, and Safari but not in IE9. Everytime I use JSON.parse Internet Explorer throws a "SCRIPT1014: Invalid character" error. I have included json2.js into the script since JSON.parse isn't supported in IE8 but to no avail does it still work. How can I make this work?

function run() {
        $("#testing").ajaxSubmit({
            success: function (data) {
                console.log(data);
                var parsedjson = JSON.parse(data);
                var truejson = parsedjson[0];
            }
        });
    }

LOG: <pre>[{"group":null,"name":"lion.jpg","type":"image/png","size":5269,"progress":"1.0","url":"/Upload/UploadHandler.ashx?f=lion.jpg","thumbnail_url":"data:image/png;base64,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","delete_url":"/Upload/UploadHandler.ashx?f=lion.jpg","delete_type":"DELETE","error":null}]</pre> 

Upvotes: 1

Views: 3803

Answers (3)

adoo
adoo

Reputation: 1

jQuery.browser This property was removed in jQuery 1.9 and is available only through the jQuery.migrate plugin. Please try to use feature detection instead.

see:http://api.jquery.com/jquery.browser/

Upvotes: 0

user1074316
user1074316

Reputation: 133

The answer is to remove the "pre" tags surrounding the returned json string as Internet Explorer throws these tags on in order to preserve the structure of the text. The Form Plugin does work with Internet Explorer but only for same domain cases. CORS unfortunately is not supported by IE9. Solved the problem by doing this....

function imageUploader() {
        $("#testing").ajaxSubmit({
            success: function (data) {
                if (jQuery.browser.msie == true) {
                    var newdata = data.replace('<pre>', '');
                    var newdata2 = newdata.replace('</pre>', '');
                    var parsedjson = JSON.parse(newdata2);
                    var truejson = parsedjson[0];
                    var image = "<img src=" + truejson.thumbnail_url + " alt=" + truejson.name + "/>";
                    $("div#previewIe").html(image);
                } else {
                    var parsedjson = JSON.parse(data);
                    var truejson = parsedjson[0];
                    var image = "<img src=" + truejson.thumbnail_url + " alt=" + truejson.name + "/>";
                    $("div#previewIe").html(image);
                }
            }
        });
    }

Upvotes: 2

Grilse
Grilse

Reputation: 3917

You are using the jQuery Form Plugin. As stated by Kyle, json2.js is irrelevant here.

IE9 does not support submitting files via ajax.

So the jQuery Form Plugin submits the form to a hidden iframe as a workaround, which has its limitations. These limitations are what you're running in to.

This is fine if the response type is HTML or XML, but doesn't work as well if the response type is script or JSON, both of which often contain characters that need to be repesented using entity references when found in HTML markup.

Upvotes: 0

Related Questions