2010-09-01 56 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

不要这样想。我认为你应该使用一个参数。