在"No 'Access-Control-Allow-Origin'"中获取文档内容

Get document content results in "No 'Access-Control-Allow-Origin'"

本文关键字:quot 文档 获取 No Access-Control-Allow-Origin      更新时间:2023-09-26

你好,我有一个问题,这不是直接特定于Alfresco,但它会更容易,如果有人已经有这个的一些代码。

我想从alfresco获得以下url的文档:(主持人):(港)/户外/服务/cmis/s/工作区:SpacesStore/我/8492 e1bf e144 - 4 eb1 - 972 f - 9973 e39b9af4/content.pdf

我使用pdf.js来获取内容并在我的页面中显示它,但是当页面加载时,它会在控制台上给我同源策略错误,因为我正在本地tomcat服务器上运行我的应用程序,我正在使用谷歌浏览器。(我相信IE没有这个问题)

我在谷歌上搜索了这个问题,似乎通过JSONP获得数据是解决这个问题的方法,但我找不到一种方法与Alfresco一起使用JSONP,有人有这方面的经验吗?所以你能给我贴一些代码来了解它是如何工作的吗?

下面是我的代码,如果需要的话:
var url = 'http://host:port/alfresco/service/cmis/s/workspace:SpacesStore/i/8492e1bf-e144-4eb1-972f-9973e39b9af4/content.pdf';

PDFJS.disableWorker = true;
PDFJS.getDocument(url).then(function getPdfHelloWorld(pdf) {
  pdf.getPage(1).then(function getPageHelloWorld(page) {
    var scale = 1;
    var viewport = page.getViewport(scale);
    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    page.render({canvasContext: context, viewport: viewport});
  });
});

提前感谢!

为此,您必须重写服务servlet并在header中添加allow-origin。

<servlet>
      <servlet-name>apiServlet</servlet-name>
      <servlet-class>org.springframework.extensions.webscripts.servlet.**WebScriptServlet**</servlet-class>
      <init-param>
         <param-name>authenticator</param-name>
         <param-value>webscripts.authenticator.basic</param-value>
      </init-param>
   </servlet>

In you class add

…httpResponse。setHeader("Access-Control-Allow-Origin"、"*");…

设置您的域名