1

JSON.parse を使用して、JSON 文字列を JSON オブジェクトに変換しています。Google Chrome、Firefox、Opera、Safari では動作しますが、IE9 では動作しません。JSON.parse を使用するたびに、Internet Explorer は「SCRIPT1014: 無効な文字」エラーをスローします。JSON.parse は IE8 でサポートされていないため、スクリプトに json2.js を含めましたが、それでも機能しません。どうすればこれを機能させることができますか?

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> 
4

3 に答える 3

2

答えは、返された json 文字列を囲む "pre" タグを削除することです。Internet Explorer はテキストの構造を保持するためにこれらのタグをスローします。フォーム プラグインは Internet Explorer で動作しますが、同じドメインの場合のみです。CORS は残念ながら IE9 ではサポートされていません。これを行うことで問題を解決しました....

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);
                }
            }
        });
    }
于 2012-12-17T16:56:25.367 に答える
0

jQuery.browserこのプロパティは jQuery 1.9 で削除され、jQuery.migrate プラグインを介してのみ使用できます。代わりに機能検出を使用してみてください。

参照: http://api.jquery.com/jquery.browser/

于 2015-03-20T01:58:19.920 に答える
0

jQuery フォーム プラグインを使用しています。Kyle が述べたように、json2.js はここでは関係ありません。

IE9は ajax によるファイルの送信をサポートしていません

そのため、jQuery フォーム プラグインは回避策として非表示の iframe にフォームを送信しますが、これには制限があります。これらの制限は、あなたが実行しているものです。

これは、応答の種類が HTML または XML の場合は問題ありませんが、応答の種類がスクリプトまたは JSON の場合はうまく機能しません。どちらにも、HTML マークアップで見つかった場合にエンティティ参照を使用して表現する必要がある文字が含まれていることがよくあります。

于 2012-12-14T22:23:07.250 に答える