2010-03-20 33 views
3

我使用Ajax JQuery命令調用一個PHP腳本,該腳本生成一個CSV文件並返回該文件的鏈接供用戶下載。返回自動下載JQuery Ajax調用

我想通過自動開始下載使用戶更友好,讓用戶看到瀏覽器的「保存或打開」窗口,而不必單擊下載鏈接。

我猜我需要以某種方式更改Ajax成功回調函數中的頭文件?

我不確定我應該提交我的搜索,或者即使這是可能的。

謝謝!

+2

聽起來像你真的想在這種情況下*不*執行AJAX,並將文檔位置設置爲查詢字符串以生成該CSV。 (或者,如果您喜歡彈出窗口,請在CSV位置彈出一個新窗口/標籤。) – 2010-03-20 00:16:09

+1

以AJAX的方式執行此操作,從服務器檢索「url」並將文檔位置設置爲「url」 – 2010-03-20 00:21:24

+1

與krio同意。最佳做法是不做異步回發,但更新網址。這也是您的用戶可能想要保存該鏈接並稍後下載而不返回到該頁面。 – XGreen 2010-03-20 00:22:04

回答

3

你可以這樣做最簡單的(也可能是唯一的)服務器端,不需要AJAX,這樣的:如果關閉,它已經相當長的一段

<?php 
header('Content-type: "text/csv"; charset="utf8"'); //adjust encoding if needed 
header('Content-disposition: attachment; filename="fileNameHere.csv"'); 
//output document in response 
?> 

有人覺得免費的,如果語法編輯此因爲我有一個PHP項目。

+0

謝謝!這讓我走上了正確的道路! – krx 2010-03-20 00:44:16