0

Internet Explorer以外の他のすべてのブラウザーでは、jQueryフォームプラグインを使用してajaxリクエストからの応答データにアクセスできます。Internet Explorerで同じことを行うと、データは入りますが、アクセスできません。IE9のコンソールで「SCRIPT5:アクセスが拒否されました」というエラーが引き続き表示されます。明らかに入ってくるので、このデータにアクセスするにはどうすればよいですか。コンソールを作成しようとすると、エラーが発生します。はい、console.logはIE9で機能します。私はそれをテストしました。

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

<form id="testing" action="http://clvapi/upload/uploadhandler.ashx" method="POST" enctype="multipart/form-data">
<div class="twitter-bootstrap-upload">
    <div class="fileupload fileupload-new" data-provides="fileupload">
      <div class="fileupload-preview thumbnail" style="width: 200px; height: 150px;"></div>
      <div>
        <span class="btn btn-file"><span class="fileupload-new">Select image</span><span class="fileupload-exists">Change</span><input type="file" name="files[]" onchange="run()"/></span>
        <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
      </div>
    </div>
</div>

4

1 に答える 1

0

testingはあなたの形であると仮定しています。

プラグインを使用する代わりに、これを試してください。

    $("#testing").on('submit', function(){
        $.post(this.action, $(this).serialize(), function (data) {
            console.log(data);
            var parsedjson = JSON.parse(data)[0];
        });
        return false; //prevent the default `submit` from occuring
    });

次に、フォームを(プログラムで)送信する場合は、次のようにします。

    $("#testing").trigger('submit');

または、js コードからフォームを送信したくない場合は、通常どおりに送信してください。

于 2012-12-13T18:10:07.123 に答える