ikbeldo 发表于 2017-11-22 20:05:32

Html5Viewer中给reportService.url赋值一个域名地址不能访问

html页面是单独的一个页面,并没有和http://192.168.31.155:8013这个域名在同一个站点下。希望实现的效果是在这个页面里边,引用了ActiveReports相关的css和js之后,也可以直接用原来写好的报表。最终当调用WebService的OpenReport的时候,出现了500服务器错误。

代码 如下:
      viewer = GrapeCity.ActiveReports.Viewer({
          element: '#viewerContainer',
          reportService: {
            url: 'http://192.168.31.155:8013/CustomerService/demo2.asmx'
          },
          uiType: 'desktop',
          renderMode: 'Galley',
          report: {
            id: 'ReportFiles/demo2/Demo.rdlx'
          }
      });

KearneyKang 发表于 2017-11-23 09:14:37

您好,您的意思是您调用的服务是发布的另外的一个IIS服务。然后现在想引用这个服务然后,进行报表的展示。但是出现500的错误。
首先您URL调用的服务可以单独进行访问吗?

ikbeldo 发表于 2017-11-23 10:27:01

KearneyKang 发表于 2017-11-23 09:14
您好,您的意思是您调用的服务是发布的另外的一个IIS服务。然后现在想引用这个服务然后,进行报表的展示。 ...

webservice 是 可以单独访问的,我不知道这里边是不是有 同源策略 这个原因,导致不能访问另一个站点的webservice 。

KearneyKang 发表于 2017-11-23 12:18:20

您好!您按着这个帖子里的内容进行设置:
http://gcdn.gcpowertools.com.cn/forum.php?mod=viewthread&tid=36432&extra=&page=1

ikbeldo 发表于 2017-11-23 13:01:27

KearneyKang 发表于 2017-11-23 12:18
您好!您按着这个帖子里的内容进行设置:
http://gcdn.gcpowertools.com.cn/forum.php?mod=viewthread&tid ...

您好,这样设置了以后,就会有同源策略的问题,不能跨域访问WebService。

XMLHttpRequest cannot load http://192.168.31.155:8013/CustomerService/demo2.asmx/OpenReport. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 500.

ikbeldo 发表于 2017-11-23 13:11:46

ikbeldo 发表于 2017-11-23 13:01
您好,这样设置了以后,就会有同源策略的问题,不能跨域访问WebService。

XMLHttpRequest cannot load ...

你们可以配置一个局域网的站点 demo,然后随便建一个html页面,是一个独立的html,不要和 站点demo 在同一个 站点下。

KearneyKang 发表于 2017-11-23 14:32:28

你好!我这边也在进行验证,也出现了跟你一样的错误信息。正在需求解决办法。
还有就是为什么调用服务,您们怎么不直接在应用程序中添加服务,而是要调用一个重新发布的服务,这种操作很容易出现访问不了的问题,刚才给你的办法就是解决这种问题的唯一办法,但是我们都出现了同样的问题。我现在还需要再研究看看还有什么设置问题导致的这个问题。

ikbeldo 发表于 2017-11-23 16:48:32

KearneyKang 发表于 2017-11-23 14:32
你好!我这边也在进行验证,也出现了跟你一样的错误信息。正在需求解决办法。
还有就是为什么调用服务,您 ...

我们手机App用H5做的,手机里边也需要显示这个报表。但是手机里的html页面,就是一个独立的页面,和已经做好的报表系统不是一个站点的,所以就会有这种需求。

KearneyKang 发表于 2017-11-23 20:01:40

本帖最后由 KearneyKang 于 2017-11-24 12:23 编辑

你好!现在这问题是跨区域访问的问题。
想要接受跨域访问,就需要在Config的配置文件中的<system.webServer> 节点下添加以下配置,这样可以让报表服务器网站接受跨域访问
<httpProtocol>
      <customHeaders>

               <add name="Access-Control-Allow-Origin" value="*" />

             <add name="Access-Control-Allow-Headers" value="Authorization, Origin, Content-Type, Accept, X-Requested-With" />

    </customHeaders>
</httpProtocol>
我已经在我本地进行测试了,在您当前项目中的config文件中添加这段代码就可以解决您的问题



页: [1]
查看完整版本: Html5Viewer中给reportService.url赋值一个域名地址不能访问