Reputation: 133
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
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
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
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