我有两个应用程序:
当我在计算机上运行应用程序时,一切正常,MVC 应用程序可以向我的 API 发出 get/post http 请求。
当我发布到服务器时,我的 LOCAL MVC 应用程序仍然可以发出 get/post http 请求。
但是当 ASP.NET Core MVC 应用程序发布到服务器时,它只能发出
Get
请求,而不再发出 Post
请求。
两个应用程序都位于同一服务器、同一域下。两者都使用 http 而不是 https。
有人知道我是否遗漏了什么吗?
我尝试了很多东西:了解了CORS起源、转为http或https。更改发布的网址...
这是 CORS 的问题,当任何人从邮递员或其他 URL 尝试调用时,浏览器确实会阻止调用您的其余 api。基本上,您可以做的是创建 CORS 策略并根据您的要求允许它们。
以下是如何在program.cs或startup.cs文件中执行此操作
builder.Services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
policy =>
{
policy.WithOrigins("http://example.com",
"http://www.contoso.com");
});
});
您可以在以下链接找到更多相关信息
https://www.bytehide.com/blog/cors-aspnet-core
https://learn.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-8.0
https://medium.com/@M-B-A-R-K/what-is-cors-in-asp-net-core-85f4903c9d43