3

このプラグインを使用して、ユーザーが ajax 経由で画像をアップロードできるようにしています。

アップローダを作成して投稿をトリガーするには、次の jQuery 関数を使用します。

function createUploader() {
        var uploader = new qq.FileUploader({
             element: document.getElementById('file-uploader'),
             allowedExtensions: ['pdf'],
             multiple: false,
             action: '@Url.Action("AjaxUpload", "Upload")',
             onComplete: function(id, fileName, responseJSON){
               window.location.href = responseJSON.message;
            }
        });
    }

さて、responseJSON.message私はファイルがアップロードされた(実際に変換された)パスを返してwindow.location.hrefいます。ブラウザにそのファイルのユーザーダウンロードボックスを強制的に表示させるトリックを行っています。

これは FF と Chrome ではうまく機能しますが、IE では次のように表示されます。

Do you want to open or save AjaxUpload from localhost?

また、[開く] をクリックすると、指定した場所からファイルを取得する代わりに、responseJSON メッセージを含むファイルが実際に取得されます。

この問題の手がかりを教えてくれる jQuery の第一人者はいますか?

更新:私が確認できるのは、window.location.href = responseJSON.message;この行を削除しalert('something')て同じ問題が発生しても問題が発生しないことです...したがって、解析する代わりにonComplete、IEはJSON応答を開こうとします...

4

1 に答える 1

5

試す

return Json(new { Data = new { message = outputFilePathResponse } }, "text/html");

参照: IE は ASP で JSON をダウンロードしようとします。ネット MVC 3

于 2012-05-30T20:15:53.007 に答える