我有一个Web应用程序(用angular编写),用户可以在其中定义基本文档结构,然后单击“预览”,当他这样做时,会向服务器发送一个请求,该服务器返回文档的二进制表示。
我打开一个新的浏览器窗口,我想在那里显示文档,但我不知道该怎么做。该文档可以是Word(docx)或PDF格式。
这是响应标题:
access-control-allow-headers: "X-Requested-With"
access-control-allow-origin: "*"
content-disposition: "attachment; filename=5/Test_Opportunity-my_quote-1-Feb-2015-13-16-42.docx"
content-length: "1105470"
content-security-policy: "default-src 'self';img-src data: 'self' https://*.rackcdn.com https://cdn.jsdelivr.net; script-src https://cdnjs.cloudflare.com https://code.jquery.com https://cdn.jsdelivr.net https://*.rackcdn.com 'unsafe-eval' https: 'unsafe-inline' 'self' ;style-src 'unsafe-inline' 'self' https://cdn.jsdelivr.net https://*.rackcdn.com https://*.googleapis.com;font-src 'self' https://fonts.gstatic.com"
content-type: "application/x-download"
x-content-type-options: "nosniff"
x-frame-options: "DENY"
x-permitted-cross-domain-policies: "master-only"
x-xss-protection: "1; mode=block"
答案 0 :(得分:1)
如果您只是在原始文档中显示原始文档,那么该窗口的位置应该是返回二进制文档的URL路径。类似的东西:
<a href="...preview_request_to_server_url..." target="_blank">Preview</a>
您想要打开一个新窗口,并让新窗口实际请求预览。
答案 1 :(得分:1)
下载文件时,内容类型应如下所示。 将各自的mimeTypes设置为其扩展名。
extension and there content/mime Type
.doc = application/msword
.docx = application/vnd.openxmlformats-officedocument.wordprocessingml.document
.pdf = application/pdf
然后使用
$window.open('url', '_blank');
这适用于IE-9 +。谢谢。