Flex3-从Flash发送HTTP Get请求,并希望Firefox显示Open With Box

Flex3-从Flash发送HTTP Get请求,并希望Firefox显示Open With Box,http,firefox,flex3,Http,Firefox,Flex3,就Flex和Flash而言,我是一名新手。这就是我想做的: 1) 向我们的服务器发送HTTP请求(使用自定义URL)。URL基本上告诉服务器以CSV格式发送数据。 2) 服务器发送一个200 OK响应,其内容类型为:application/csv,负载为纯csv数据 我想做的是,当firefox得到这个200OK响应时,我希望它显示标准的OpenWith框(当你下载一些文件时显示的那个) 我试着用HTTPService来做这件事。我在flash组件上有一个“导出到CSV”按钮。单击该按钮后,fl

就Flex和Flash而言,我是一名新手。这就是我想做的:

1) 向我们的服务器发送HTTP请求(使用自定义URL)。URL基本上告诉服务器以CSV格式发送数据。 2) 服务器发送一个200 OK响应,其内容类型为:application/csv,负载为纯csv数据

我想做的是,当firefox得到这个200OK响应时,我希望它显示标准的OpenWith框(当你下载一些文件时显示的那个)


我试着用HTTPService来做这件事。我在flash组件上有一个“导出到CSV”按钮。单击该按钮后,flash组件能够成功地发送HTTP请求。但是,我不希望Flash组件处理响应,因此我没有定义's“result”标记。但什么也没发生。关于如何执行此操作的任何建议。

您至少需要Flash来响应请求,然后您可以调用navigateToURL转到您的文件,如下所示:

private function resultHandler(event:ResultEvent):void
{
    navigateToURL(new URLRequest('createdFile.csv','_self'));
}

服务器需要随文件一起发送标头:

Content-Disposition: attachment; filename=foo.csv
编辑:让我们解释一下:

执行此操作时:

navigateToURL(new URLRequest('foo.csv'), '_self');
实际上,您间接地要求浏览器获取foo.csv。现在,为了让浏览器显示“保存”对话框,它需要知道数据应该作为附件处理。标题:

Content-Disposition: attachment

就是这样。但是,通常您还希望让浏览器知道文件名(以及文件类型,通过扩展名),这就是为什么要在分号后添加文件名位。

嘿,Rytmis,非常感谢。navigateToURL和内容配置的组合起到了作用。荣誉谢谢,这很有帮助。我的一个更正是,“window”参数实际上是navigateToURL函数的一个参数,而不是URLRequest对象的一个参数。所以它应该是这样的。。。导航URL(新的URL请求('foo.csv'),'u self');谢谢,修好了。哎呀,这个问题真的让我想发布一个答案——不仅OP不接受它,我也得到了反对票,尽管事实上答案是正确的(除了放错括号之外)。:D