所以,主要问题是CORS:
我在Net Core 2.1
中有一个小API,还有一个Angular 7
应用。当我在Visual Studio 2017中运行API时,CORS策略工作正常,但是当我使用"dotnet run"
运行它时,浏览器中会出现典型的CORS
错误。
我已经设置了“开发”环境:
setx ASPNETCORE_ENVIRONMENT "Development"
这是Startup.cs中的CORS配置
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseCors(x => x
.WithOrigins("http://localhost:4200")
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
}
Visual Studio 2017是否正在做我缺少的事情?
谢谢。
答案 0 :(得分:0)
要在Development
下指定dotnet run
,请尝试在下面运行命令:
D:\xx\TestPro\TestPro\bin\Debug\netcoreapp2.2>set ASPNETCORE_ENVIRONMENT=Development
然后运行
D:\xx\TestPro\TestPro\bin\Debug\netcoreapp2.2>dotnet TestPro.dll
对于setx ASPNETCORE_ENVIRONMENT "Development"
,它不适用于当前正在运行的命令窗口,这意味着在第一个cmd.exe windows
中运行此命令后,需要启动一个新窗口来运行{{1 }}。
参考:setx#remarks
Setx将变量写入注册表中的主环境。 使用setx变量设置的变量在将来的命令中可用 仅限Windows,不在当前命令窗口中。