找回密码
 立即注册

QQ登录

只需一步,快速开始

sunnyboom

注册会员

9

主题

31

帖子

120

积分

注册会员

积分
120

微信认证勋章

sunnyboom
注册会员   /  发表于:2020-6-4 09:20  /   查看:8182  /  回复:15
1金币
我在web项目中集成了v14版本的报表服务,之前由于浏览器跨域问题,已经配置过web.config文件,在测试服务器上已经测试通过了;

但是部署到生产服务器上后,这个跨域问题又出现了,之前解决问题的时候这里配置的是我的测试服务器的公网IP,上了生产服务器后使用公网IP就不行了;
测试服务器和生产服务器唯一不同的是生产服务器上使用了Nginx代理,测试服务器上没有,现在我要怎么配置以便解决这个问题呢?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,你参考下这个地址:https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-3.1 我个人觉得这个更加简洁容易明白:https://stackoverflow.com/questions/17323350/access-control-allow-origin-with-multiple-domains 建议你看看 这是我们研发给的一个解决办法

15 个回复

倒序浏览
最佳答案
最佳答案
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-6-4 09:20:40
来自 14#
本帖最后由 KearneyKang 于 2020-7-3 17:54 编辑

您好,你参考下这个地址:https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-3.1
我个人觉得这个更加简洁容易明白:https://stackoverflow.com/questions/17323350/access-control-allow-origin-with-multiple-domains
建议你看看
这是我们研发给的一个解决办法


回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-6-4 11:28:15
2#
我看了你那个网址哪里写的是一个固定的网址,然后使用Nginx的网址可能是不固定的,你把哪里换成一个通配符号看看:

add_header 'Access-Control-Allow-Origin' '*';

评分

参与人数 1满意度 +5 收起 理由
sunnyboom + 5 很给力!

查看全部评分

回复 使用道具 举报
sunnyboom
注册会员   /  发表于:2020-6-19 11:41:15
3#
本帖最后由 sunnyboom 于 2020-6-19 11:42 编辑
KearneyKang 发表于 2020-6-4 11:28
我看了你那个网址哪里写的是一个固定的网址,然后使用Nginx的网址可能是不固定的,你把哪里换成一个通配符 ...

问题描述:浏览器跨域问题
做过的尝试:修改asp.net项目下的web.config文件,在<system.webServer>增加了以下代码:
  1.    <httpProtocol>

  2.       <customHeaders>

  3.         <add name="Access-Control-Allow-Origin" value="localhost:8080/TestWeb" />

  4.         <add name="Access-Control-Allow-Headers" value="Access-Control-Allow-Headers, Origin,Accept,Expires, X-Requested-With,Cache-Control,Content-Type,Pragma,Access-Control-Request-Method, Access-Control-Request-Headers" />

  5.         <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />

  6.         <add name="Access-Control-Allow-Credentials" value="true" />

  7.       </customHeaders>

  8.     </httpProtocol>  
复制代码

该办法的处理结果:Access-Control-Allow-Origin标签值“配置具体的IP或域名时”跨域问题是可以被解决的
产生的新问题(目前需要解决的问题):因为我现在有一个域名和一个IP需要能够同时访问报表服务,但是上面所示标红的代码不能配置“*”,如下图所示。
  1. Access to fetch at 'http://localhost:58720/api/reporting/reports/AcmeStore.rdlx/info' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'.
复制代码

现在我需要怎么做能够让多个IP同时支持跨域访问;下面是我使用的web测试程序,asp.net为咱们示例程序中的“ActiveReportsV14SP1\示例源码\WebSamples14-master\JsViewerSamples\JSViewer_MVC”,您可以跑起来测试一下。
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3.   For more information on how to configure your ASP.NET application, please visit
  4.   http://go.microsoft.com/fwlink/?LinkId=301880
  5.   -->
  6. <configuration>
  7.   <appSettings>
  8.     <add key="webpages:Version" value="3.0.0.0"/>
  9.     <add key="webpages:Enabled" value="false"/>
  10.     <add key="ClientValidationEnabled" value="true"/>
  11.     <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  12.   </appSettings>
  13.   <system.web>
  14.     <compilation debug="true" targetFramework="4.5"/>
  15.     <httpRuntime targetFramework="4.5" requestPathInvalidCharacters=""/>
  16.   </system.web>
  17.   <system.webServer>
  18.      <handlers>
  19.       <add name="nostaticfile" path="*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  20.      </handlers>
  21.     <security>
  22.       <requestFiltering allowDoubleEscaping="true"/>
  23.     </security>
  24.     <httpProtocol>
  25.       <customHeaders>
  26.         <add name="Access-Control-Allow-Origin" value="*" />
  27.         <add name="Access-Control-Allow-Headers" value="Access-Control-Allow-Headers, Origin,Accept,Expires, X-Requested-With,Cache-Control,Content-Type,Pragma,Access-Control-Request-Method, Access-Control-Request-Headers" />
  28.         <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
  29.         <add name="Access-Control-Allow-Credentials" value="true" />
  30.       </customHeaders>
  31.     </httpProtocol>  
  32.   </system.webServer>
  33. </configuration>
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-6-19 16:13:15
4#
问题收到,我去研究下
回复 使用道具 举报
sunnyboom
注册会员   /  发表于:2020-6-19 18:04:46
5#
KearneyKang 发表于 2020-6-19 16:13
问题收到,我去研究下

好的,谢谢
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-6-22 09:10:18
6#
正在研究,问题已经重现
回复 使用道具 举报
sunnyboom
注册会员   /  发表于:2020-6-24 08:48:01
7#
KearneyKang 发表于 2020-6-22 09:10
正在研究,问题已经重现

您好,这个问题怎么样了,有解决方法么?
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-6-24 09:21:23
8#
你好,我这边试了好几种办法还是不行,现在已经提交给研发团队了。估计还需要 一丢丢时间
回复 使用道具 举报
sunnyboom
注册会员   /  发表于:2020-6-24 16:27:47
9#
KearneyKang 发表于 2020-6-24 09:21
你好,我这边试了好几种办法还是不行,现在已经提交给研发团队了。估计还需要 一丢丢时间

好的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部