我最近一直在使用dojo v1.7来上传/下载文件。我在websphere app服务器中部署了一个servlet类来处理请求/响应流量。但是,我遇到了通过iframe.send + servlet下载文件的问题。好吧,使用FF / Chrome,它可以工作,但是对于IE v10,它并没有。它似乎从未调用过servlet类的实例。我确实在doGet方法中实现了日志记录以记录传输的内容。当我通过IE 10发起http请求时,没有记录任何内容。我很感激您对此的意见。
iframe.send({
method: "GET",
content: {
name: "base64_string_value"
},
url: "/myServlet"
}).then(function(data) {}, function(err) {});
[更新] 在通过表单标记包装输入标记并在send方法中指定表单属性之后,请求由servlet处理,但是,从浏览器端,我期望一个对话框要求用户打开或保存,但它没有发生。相反,我得到了#34;此页面无法显示。"在浏览器中。
<form id="myForm">
<input type="submit" value="Download"></input>
</form>
iframe.send({ .... form: "myForm" });
答案 0 :(得分:0)
我必须为在问题中不诚实而道歉。我试图提交的数据不仅仅是一个文件名(我更正了我的问题的内容),但是base64字符串值相当大。我想无论数据大小如何,servlet都会在读取所请求文件的内容(base64)后返回一个文件对象。切换从Get到POST提交表单,并在servlet类中执行适当的工程师(实现了doPost并丢弃了doGet)后,从浏览器下载文件在IE和Chrome中都运行良好。