启动文件下载所以我ExtJS的应用程序中,在组合一定的开放会导致下载文件(阅读:导出为PDF)。现在我们使用window.open
来做到这一点,其中我们点击了一个特定的URL,这个URL在本质上和RESTful类似。通过GET请求
window.open('https://example.com/myapp/api/module/someId/exportPDF.pdf?clientId=bizzare123¶m1=someValue');
这打开了新的标签页,我得到要下载的文件。现在这在理论上是一个GET请求(虽然它没有出现在Chrome DevTools的“网络”选项卡中),并且我想将一些JSON数据作为请求主体(数据很大,因此无法在请求参数中适合它)传递。
可以通过调用使用Ext.Ajax.request
并通过jsonData
相同的URL来完成? (我相信,那我就必须处理文件中success
回调中反应过来。
谢谢!
PS我对ExtJS的4.0
更新
早些时候,我们有只有GET请求来下载该文件,但以支持新的功能,我们必须首先发送POST请求自定义下载,以及API然后直接发送响应文件POST请求。
但由于rixo在评论中提到,可能无法直接访问文件的异步下载,所以我必须更改API,以便在POST请求中发送文件URL,然后我可以点击该URL并启动文件下载。考虑到这是一个巨大的企业级网络应用,影响了大部分使用IE的数百万用户,我希望避免使用现代化的API(它们显然是诱人的,但在IE上不支持,就像往常一样)。
某些代理/防火墙会丢弃GET请求的正文,而一些HTTP服务器完全拒绝这些请求。我不会依赖那个。如果你不能依靠[XHR level 2](http://caniuse.com/xhr2)和[File API](http://caniuse.com),那么你将无法使用AJAX下载该文件/ fileapi)。 Ext不会为你包装这个... – rixo