当前位置: 首页 > 知识库问答 >
问题:

为本地主机上的任何端口启用CORS

滕学义
2023-03-14

在asp.net核心中,我可以使用中间件在某些方法上启用CORS,如下所述

我想知道是否可以为任何方案和localhost上的任何端口启用CORS(仅用于测试目的)。我尝试了通配符,它不起作用

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        if(_environment.IsDevelopment())
        {
              options.AddDefaultPolicy(
                 builder =>
                 {
                     builder.WithOrigins("http://localhost/*",
                                         "https://localhost/*");
                 });
             });
        }
        else
        {
            options.AddDefaultPolicy(
                 builder =>
                 {
                     builder.WithOrigins("http://example.com",
                                         "http://www.contoso.com");
                  });
             });
        }

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

共有2个答案

何兴学
2023-03-14

我目前正在使用它进行测试,如果你去掉通配符,它就会工作。

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        services.AddMvc();

        services.AddCors(options =>
        {
            options.AddPolicy(MyAllowSpecificOrigins,
            builder =>
            {
                builder.WithOrigins("http://localhost");
            });
        });



        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
   }
燕青青
2023-03-14

ASP。NET Core的SetIsOriginAllowed方法使您能够完全控制是否允许一个来源参与CORS。以下是基于您的代码示例的示例:

if(_environment.IsDevelopment())
{
    options.AddDefaultPolicy(builder =>
    {
        builder.SetIsOriginAllowed(origin => new Uri(origin).Host == "localhost");
    });
}
else
{
    // ...
}

传入SetIs源允许委托的值是完整的源,看起来像http://localhost:8080。使用Uri,上面的代码将Hostlocalhost进行比较,最终允许所有localhost源。

 类似资料:
  • 我有一个RMI服务器在本地主机上运行,导出类型的对象: 然后我想启动一个客户端并获取该对象的存根。似乎找到了注册表,但随后在块中抛出了: java.rmi.NotBoundexception:M在sun.rmi.registry.registryimpl.lookup(registryimpl.java:136)在sun.rmi.server.unicastserverref.olddispatc

  • 问题内容: 我将一个应用程序容器化,该应用程序是自动selenium测试的测试驱动程序。Selenium服务器(也称为Selenium Hub)在localhost:4444下的另一个Container和Firefox Node中运行。但是我的应用程序无法达到它: 我通过docker-compose启动了这些容器: 我想我的docker-compose中有一个错误,但我无法弄清楚。请帮忙!顺便说一

  • 我从链接create-react-app下载了React App包。它指定的默认端口是port: 3000 如何将此端口更改为自定义端口,如3002或3006?

  • 问题内容: 我无法从Eclipse Helios启动Tomcat v6.0。 我的Java bin路径设置正确。 而且,我可以从Eclipse外部手动启动服务器。我可以从Windows Services以及使用tomcat6.exe启动它,并通过在URL中键入localhost:8080来查看它在我的浏览器中是否正常运行,但是当我从Eclipse启动时,出现一个窗口,说启动tomcat时遇到问题。

  • SQLServerException:与主机本地主机端口1433的TCP/IP连接失败。错误:“连接被拒绝:连接。请验证连接属性。确保主机上运行SQL Server实例,并在端口接受TCP/IP连接。确保到端口的TCP连接没有被防火墙阻止。 请帮我解决这个问题。

  • 问题内容: 我在公司中提供一个私有Docker容器,并希望我的同事能够在我们的内部网络中访问,问题是我的来宾操作系统是OSX,因此我只能使用192.168.99.100:3000访问我的应用程序来自docker机器的默认IP。 如何将docker-machine 3000端口转发到主机80端口? 问题答案: 目前,Docker Machine是在您计算机中VirtualBox下运行的虚拟机,因此要