使用Ajax下载并打开PDF文件 - javascript

我有一个生成PDF的动作类。 contentType设置适当。

public class MyAction extends ActionSupport 
{
   public String execute() {
    ...
    ...
    File report = signedPdfExporter.generateReport(xyzData, props);

    inputStream = new FileInputStream(report);
    contentDisposition = "attachment=\"" + report.getName() + "\"";
    contentType = "application/pdf";
    return SUCCESS;
   }
}

我通过Ajax调用将此action调用。我不知道将流传输到浏览器的方法。我尝试了几件事,但没有任何效果。

$.ajax({
    type: "POST",
    url: url,
    data: wireIdList,
    cache: false,
    success: function(response)
    {
        alert('got response');
        window.open(response);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) 
    {
        alert('Error occurred while opening fax template' 
              + getAjaxErrorString(textStatus, errorThrown));
    }
});

上面给出了错误:

您的浏览器发送了该服务器无法理解的请求。

参考方案

您不一定为此需要Ajax。如果您在服务器端代码中将<a>设置为content-disposition,则仅attachment链接就足够了。这样,如果您最关心的是父页面将保持打开状态(为什么您不必要为此选择Ajax?)。此外,没有办法同时处理这个问题。 PDF不是字符数据。它是二进制数据。您不能做类似$(element).load()的事情。您想为此使用全新的请求。对于该<a href="pdfservlet/filename.pdf">pdf</a>非常适合。

为了在服务器端代码方面为您提供更多帮助,您需要更多地介绍所使用的语言并发布代码尝试的摘录。

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

Java / Javascript-从客户端获取IP - java

我正在使用java playframework2,但似乎无法获得正确的IP地址。每次请求后,它都会不断变化。我的意思是,流量分析网站在标头中实现javascript来分析您的流量,因此使用javascript应该可以吗?如果框架不提供此类功能,是否还有其他方法可以从客户端获取IP?我想建立一个访客计数器,但是它应该只统计唯一身份的访客。也许我不必使用IP地址…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …