---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");
然后正常发布部署之后,经过测试。确实可以了。
完美!!