このプラグインを使用して、ユーザーが 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応答を開こうとします...