2011-05-11 6 views
1

コードならば、私はこの小片を持っている:ajaxとiframeを介してダウンロードしていますか?

$.post('exportToExcel.php', function(data) { 

    var iframe = document.createElement("iframe"); 
    iframe.src = ""+data; 
    iframe.style.display = "none"; 

    document.body.appendChild(iframe); 
}); 

しかし、何も起こりません、私はjQueryのAJAXスルーサーバーからのシームレスなファイルをダウンロードしようとしています。

誰でも良い修正がありますか?

答えて

2

ユーザーをファイルに誘導するだけの場合は、通常のリンクを使用するか、location.href = 'my_url';を使用してブラウザを直接送信してください。

また、この「シームレス」なやり方を実際に行いたい場合は、AJAX POSTを使用しないでください。 iframeexportToExcel.phpに直接リンクしてください。

exportToExcel.phpは、POSTの使用を必要な場合は、iframe見えるようにとexportToExcel.phpGET経由で呼び出されたときに、クリックiframeと、同じサイズである「ダウンロード」ボタンを提供し、通常のHTMLフォームを送信POSTを介して同じURLに移動します。

+0

あなたの最後の提案は私のコードと大きく異なるでしょうか? – Jason94

+0

私の3番目の例の違いは、 'iframe'と通常のHTTPだけを使用している点です。 JSまたはAJAXは必要ありません。ただし、自動的にボタンをクリックするか、POSTフォームを送信するフレームページにJSを入れることができます。 – BoffinbraiN

関連する問題