同一 IIS 服务器上的 ASP.NET Core MVC 和 Web API

问题描述 投票:0回答:1

我有两个应用程序:

  1. ASP.NET Core MVC Web 应用程序
  2. ASP.NET Core Web API

当我在计算机上运行应用程序时,一切正常,MVC 应用程序可以向我的 API 发出 get/post http 请求。

当我发布到服务器时,我的 LOCAL MVC 应用程序仍然可以发出 get/post http 请求。

但是当 ASP.NET Core MVC 应用程序发布到服务器时,它只能发出

Get
请求,而不再发出
Post
请求。

两个应用程序都位于同一服务器、同一域下。两者都使用 http 而不是 https。

有人知道我是否遗漏了什么吗?

我尝试了很多东西:了解了CORS起源、转为http或https。更改发布的网址...

asp.net-core-mvc iis-7 asp.net-core-webapi
1个回答
0
投票

这是 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

© www.soinside.com 2019 - 2024. All rights reserved.