ocelot 跨域配置

813 阅读1分钟

---ocelot跨域

ocelot跨域

前面讲了通过ocelot进行网关代理。我之前配置好之后,发布到服务器上之后,所有的api接口和swaggerUI都可以正常访问。于是我以为解决了所有问题。后来前端告诉我一个很严重的问题,报了跨域问题。然后我猜测应该是通过ocelot转发之后,才出现的。

因为之前我已经做过了跨域的处理。在给一个webapi的程序中,都出处理了。后来跟前端也确认过,接口可以正常使用。界面都已经完成了。后来因为安全问题,不得不做网关处理。现在又出现了跨域。与似乎我猜测了。并且也证实了。

这是我用来测试跨域的代码。发现通过ajax请求时,浏览器确实出现了跨域的问题。此处没有截图。

然后我就用过ocelot进行处理跨域。我在网上搜索的很复杂的之类的教程,都是有问题的,写完之后,代码都报错了。而且我也切换了不同的ocelot版本,也还是不行。所以我就想通过最原始的办法去处理。就是在Startup的程序入口处,加入跨域的代码。

在ConfigureServices中加入

    services.AddCors(options => options.AddPolicy("CorsPolicy",
           builder =>
           {
               builder.AllowAnyMethod()
                   .SetIsOriginAllowed(_ => true)
                   .AllowAnyHeader()
                   .AllowCredentials();
           }));
          

在Configure中加入

	app.UseCors("CorsPolicy");

然后正常发布部署之后,经过测试。确实可以了。

完美!!