0

私は解決策を探していましたが、成功したことはありません。サーバーにアップロードする画像のフォームデータを使用した ajax 呼び出しがあります。コードは次のようになります

$.ajax({

    type:'POST',

    url:'url',

    data:UPLOAD_DATA,

    processData:false,

    contentType:false,

    cache:false,

    timeout:10000,

    mimeType:'multipart/form-data',

    dataType:'json',

    success:function(data){

        if(data.success){

            alert(data.success);

        }else if(data.redirect){

        window.location.redirect=data.redirect;

        }else{

            alert(JSON.stringify(data));

        }

    }

});

送信中、コンソールは「保留中」と表示されたままになります。このコードは、ie10 を除くすべてのブラウザーで機能します。

私を助けてください..

4

2 に答える 2

1

以前の IE バージョン (8 以前) は、マルチパート フォームの ajax 送信に対する JSON 応答を受け入れませんでした。その結果、成功のコールバックに移行することはなく、場合によっては、JSON 応答をテキスト ファイルとしてダウンロードするようユーザーに提案します。

IE10 は同じ間違いを犯していないと思います。その場合は、JSON コンテンツをテキストとして返し、リクエストの dataType をテキストに設定し、成功コールバックでテキスト レスポンスを解析して JSON クライアント側に戻すことを検討してください。

ただし、頭痛の種を探す前に、(マルチパートかどうかに関係なく) フォームの ajax 送信を処理し、uploadProgress のような便利なコールバックを提供するjQuery Form プラグインを確認してください。

于 2013-04-20T11:10:00.630 に答える