Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PDF通过ajax以字节数组的形式返回。根据参数的不同,将显示“获取错误”无效URL或空白pdf_Ajax_Spring Mvc_Pdf_Google Chrome Extension_Base64 - Fatal编程技术网

PDF通过ajax以字节数组的形式返回。根据参数的不同,将显示“获取错误”无效URL或空白pdf

PDF通过ajax以字节数组的形式返回。根据参数的不同,将显示“获取错误”无效URL或空白pdf,ajax,spring-mvc,pdf,google-chrome-extension,base64,Ajax,Spring Mvc,Pdf,Google Chrome Extension,Base64,来自spring控制器的代码,它正在将字节数组(pdf)发送回ajax调用 response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-control", "private"); response.setDateHeader("Expires", 0); response.setContentType("application/pdf");; if (pdf != null) {

来自spring控制器的代码,它正在将字节数组(pdf)发送回ajax调用

    response.setHeader("Pragma", "no-cache");
    response.setHeader("Cache-control", "private");
    response.setDateHeader("Expires", 0);
    response.setContentType("application/pdf");;

    if (pdf != null) {
        response.setContentLength(pdf.length);
        ServletOutputStream out;
        try {
            out = response.getOutputStream();
            out.write(pdf);
            out.flush();
            out.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
此pdf将动态添加到以后可以打开的对话框中。“数据”包含字节数组

var obj = $('<object width=100% height=100% style="float:left;"'
                        + ' type="application/pdf"'
                        + ' data="data:application/pdf,'
                        + escape(data)
                        + '"></object>');  
                $('#adjDialog'+rapRow).append(obj);

我从几个不同的代码示例中得到了关于堆栈溢出的提示,但没有一个与我的完全相同。我没有使用任何PHP,没有数据库,也没有将文件保存在服务器上

我只是将html属性“data”指向构建pdf响应的http请求,而不是单独进行ajax调用并尝试修补结果,从而解决了这一问题。

通用解决方案:这对我有效(pdf模式对话框从字节[]通过MVC ajax调用)
    <embed id="plugin" type="application/x-google-chrome-pdf" src="data:" 
stream-url="blob:chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/E4E5DEA1-
DDF5-4300-9C43-8634ED843E50" headers="" background-color="0xFF525659" top-
toolbar-height="56">
GET data:application/pdf;base64,%25PDF-1.4%0A%25%uFFFD%uFFFD%uFFFD%uFFFD%0A1%20…431343532353232343430323633%3E%5D%3E%3E%0Astartxref%0A84512%0A%25%25EOF%0A net::ERR_INVALID_URL