当我尝试使用我的 C# API 运行我的 ReactJS 应用程序时,当此 API 使用 HTTPS 托管在我的本地 IIS 服务器上时,我遇到了 CORS 问题。
这是我的设置详细信息
当我在开发计算机上工作并使用也在我的开发计算机“https://localhost:7248/api”上运行的 API 时,Web 应用程序按假设运行。 CORS 不会阻止我。
当我更改我的域的 API URL https://MyDomain.ca/API CORS 一直困扰着我。
我已经使用API安装了Swagger,因此我可以调用API。我可以用它登录,没有任何问题。 Swager 回复我:
access-control-allow-credentials: true
access-control-allow-origin: https://MyDomain.ca
cache-control: no-cache,no-store
content-type: application/json; charset=utf-8
date: Fri,06 Dec 2024 19:15:11 GMT
expires: Thu,01 Jan 1970 00:00:00 GMT
pragma: no-cache
server: Microsoft-IIS/10.0
vary: Origin
x-firefox-spdy: h2
x-powered-by: ASP.NET
但是当我尝试使用从 http://localhost:5173/ 运行的 React 应用程序进行登录时,我收到了与浏览器控制台中类似的错误
XHR OPTIONS https://myAuth0Domain.us.auth0.com/authorize?...blah.. CORS Missings Origin
还有:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at
我已经在相应的设置Auth0应用程序管理器中设置了我的域名, 应用程序登录 URI:https://MyDomain.ca 允许的回调 URL:https://MyDomain.ca/api/callback,http://localhost:5173/api/auth/callback 允许的 Web 来源:https://MyDomain.ca,http://localhost:5173
我还在我的 .net API 中设置了原点,如下所示:
// [More code]
builder.Services.AddHttpClient();
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowSpecificOrigin", corsBuilder =>
corsBuilder.WithOrigins("http://localhost:5173",
"https://MyDomain.ca")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials());
});
// [More code]
app.UseCors("AllowSpecificOrigin");
// [More code]
我认为
access-control-allow-origin: https://MyDomain.ca
当我尝试从 Web 应用程序登录时,标头中缺少 。但我不知道该怎么做才能解决这个问题。
我需要一些帮助来解决我的问题。
谢谢 雨果
我多次遇到这个问题,结果发现它与 CORS 无关,而是我的控制器代码中的错误
[HttpGet("TestConnect")]
public async Task<IActionResult> TestConnect()
{
try
{
// Your Code
}
catch (Exception ex)
{
return Ok(new { Message = $"{ConnString} {ex.Message}
{ex.InnerException}" });
}
return Ok(new { Message = $"Working {ConnString}" });
}