我在访问我在IIS中部署的API时遇到问题。尽管我在程序中有此代码。cs
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowCors", policy =>
{
policy.WithOrigins("https://tauri.localhost/", "http://localhost:5173")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
字符串
我仍然得到这个错误
Access to XMLHttpRequest at 'http://localhost:8001/UserAuth/Login' from origin 'http://localhost:5173' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:5173, http://localhost:5173', but only one is allowed.
型
我已经在我的web.config文件中有了这个错误,即使我把我放在program.cs中的origins放在<add name="Access-Control-Allow-Origin" value="https://tauri.localhost/, http://localhost:5173">
中,我仍然得到同样的错误。
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Content-Type, soapaction" />
</customHeaders>
</httpProtocol>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\server.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
型
我不知道我是不是错过了什么。这个API也可以访问数据库sql server。
[编辑]我观察到,每当控制器必须访问SQL Server数据库时。它会抛出has been blocked by CORS policy错误。
1条答案
按热度按时间0mkxixxg1#
您遇到的CORS问题似乎是由重复的CORS设置引起的。ASP.NET Core管道和IIS都在向您的响应添加CORS标头,这将导致重复的标头。这将被拒绝。
绝对只在一个地方处理CORS。我建议只在你的
program.cs
中处理CORS。如果您还没有,请确保将CORS放入startup.cs文件中。
比如说:
字符串
让我知道这是否解决了你的问题,或者如果你得到一个不同的错误