2010-09-01 53 views
1
  • 我有一個執行數據庫搜索的Web服務。它接受GET和POST請求,並且可以根據HTTP Accept標題以JSON,CSV或HTML格式返回數據。
  • 我有一個網頁,向該Web服務發出Ajax請求,並顯示搜索結果。
  • 我被要求在此頁面添加一個按鈕,以便用戶可以將數據保存爲CSV格式。

今年早些時候,有人在in the same boat,並得到了響應使用JavaScript的HTTP Accept Header

你不能用javascript 能力做到這一點,因爲JavaScript有沒有到客戶機上寫 許可, 相反,你可以發送請求服務器 創建csv文件並將其發送回 客戶端。

所以我加入這將打開一個新的瀏覽器選項卡中的HTML版本,一個按鈕,確實

window.open("MyWebService.cgi?" + theSameQueryStringIPassedInTheAjaxCall)

。我想要CSV版本。有沒有辦法通過Accept: text/csv HTTP頭? (我知道怎麼用XMLHttpRequest和setRequestHeader來做,但這對我沒有幫助。)

+1

將參數添加到查詢字符串不是更容易嗎? (例如format = csv) – davehauser 2010-09-01 19:43:53

+1

我不想重新實現HTTP協議的一部分。但如果必須的話,我可以輕鬆做到這一點。 – dan04 2010-09-01 19:52:11

回答

1

不要這樣想。我認爲你應該使用一個參數。