m0_67409101 2022-07-08 22:49 采纳率: 0%
浏览 483
已结题

NET CORE 6.0 IIS 跨域请求问题

问题遇到的现象和发生背景

webapi 项目放到云服务器上,外网不能访问api站点,但是服务器自身用公网ip,还有同网段的其他服务器用公网ip都可以访问,我在本地访问报这个错误,防火墙也关掉了,部署的其他站点可以访问

运行结果及报错内容

Request URL: http://103.39.223.xx:8008/swagger/index.html
Referrer Policy: strict-origin-when-cross-origin

我的解答思路和尝试过的方法

我在start.cs 里边加了跨域,同IP段的web是可以访问接口的,但是外网就是访问不了

  • <input type="checkbox" disabled="" />

    img

我想要达到的结果
  • 写回答

9条回答 默认 最新

  • bug_keng 2022-07-09 00:16
    关注

    img


    AllowAnyOrigin() //允许任何来源的主机访问
    https://blog.csdn.net/d1332508051/article/details/107822820

    评论
  • 码老头 2022-07-09 01:08
    关注

    在.NET 6中,AllowAnyOrigin()方法对任意的源不再可用,要实现跨域,可以通过WithOrigins()方法指定单个或多个允许跨域的地址,如下:

    namespace WebApplication6
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                var policyName = "AllowSpecificOrigins";
                var builder = WebApplication.CreateBuilder(args);
                builder.Services.AddControllers();
                builder.Services.AddEndpointsApiExplorer();
                builder.Services.AddSwaggerGen();
                builder.Services.AddCors(options =>
                {
                    options.AddPolicy(name: policyName,
                        policyBuilder =>
                        {
                            policyBuilder
                                .WithOrigins("http://localhost:3000", "http://localhost:3001", "http://localhost:3002")
                                .AllowAnyMethod()
                                .AllowAnyHeader();
                        });
                });
                var app = builder.Build();
                if (app.Environment.IsDevelopment())
                {
                    app.UseSwagger();
                    app.UseSwaggerUI();
                }
    
                app.UseCors(policyName);
                app.UseAuthorization();
    
                app.MapControllers();
    
                app.Run();
            }
        }
    }
    

    或者,你如果需要允许所有源,则可通过SetIsOriginAllowed()方法配置允许所有源跨域,示例如下:

    img

    展开全部

    评论 编辑记录
  • m0_67409101 2022-07-09 09:19
    关注

    这个也试过了,外网还是不能访问,同台机器的前端项目一直是可以访问到后台接口的

    评论
  • IT技术分享社区 数据库领域优质创作者 2022-07-11 15:05
    关注

    要么使用nginx 转发到域名?

    评论
  • 急速光粒 2022-07-11 23:31
    关注

    不一定是你的站点的问题,外网访问需要配置路由,是不是路由没有配置好呢?可以先看看其他站点通过路由是否可以联通。

    评论
  • 仰望星空的代码 博客专家认证 2022-07-14 01:27
    关注

    已经报跨域错误说明外网是通的,是内部跨域处理的问题。

    评论
  • Saiyueze 2022-07-15 03:55
    关注

    你放到云服器上的WebAPI,现在你需要外网访问,首先你得确保你的云服务支持让你对外网开访问权限。
    比如你现在的WebAPI部署到阿里云的ECS主机上,那么默认ECS主机是禁止让你开放服务的,你要想开放服务,就需要在控制台去添加外网可以访问的端口已经可以被访问到的公网IP,且需要在控制台上配置端口映射到你的WebAPI机器上,这样子外网才能访问到。

    以上如果还有疑问可以消息

    评论 编辑记录
  • 楠木大叔 2022-07-15 14:52
    关注

    在startup.cs中,试试这种写法:

    services.AddCors(options => {
                    options.AddPolicy("CorsPolicy", builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); });
                });
    
    
     app.UseStaticFiles(new StaticFileOptions
                {
                    OnPrepareResponse = (c) =>
                    {
                        if (!c.Context.Response.Headers.ContainsKey("Access-Control-Allow-Origin"))
                            c.Context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
                    }
                });
    
    
    评论
  • EdsionWang 2022-07-16 14:24
    关注

    应该是你这个8080端口在云服务器策略中没有开通外网访问的。一般阿里云的虚拟机都是有一个内部IP,一个外网IP。在阿里云控制台上,看看安全组的策略配置

    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 7月16日
  • 创建了问题 7月8日

悬赏问题

  • ¥15 llama.cpp项目中为什么超过上下文窗口就报错
  • ¥15 基于stc89c52单片机的延时小夜灯
  • ¥15 VQAV2现在都是怎么做evaluation的啊
  • ¥20 C#添加、更新MYSQL数据库问题
  • ¥15 ambari部署hadoop集群中的问题
  • ¥15 分析照片像素时,怎样剔除照片背景像素
  • ¥15 Cytoscape导入问题
  • ¥15 关于#lstm#的问题:我想利用一个地方的四组数据来预测第五组数据,如果想预测出另外一个地方(只有前四组数据)的第五组数据(相关搜索:预测模型)
  • ¥15 windows窗口外边框分区是什么?(qt应用)
  • ¥15 使用lightgbm框架,对糖尿病趋势进行预测。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部