代码之家  ›  专栏  ›  技术社区  ›  Bruno Gonzalez Torres

当ASP。NET API已部署

  •  0
  • Bruno Gonzalez Torres  · 技术社区  · 1 年前

    我实施了 ASP.NET API (.NET 8) .在调试时,所有端点都正常工作,但当我将此API部署到本地IIS中时,会出现以下错误:

    Access to fetch at 'https://localhost:7162/Scene' from origin 'http://localhost:3001' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

    此错误 只有 发生在 HttpPut HttpDelete 端点,正如我所说,当它部署到我的本地IIS中时。

    我已经这样配置了我的CORS策略:

    app.UseCors(x => x
    .AllowAnyHeader()
    .AllowAnyMethod()
    .SetIsOriginAllowed(origin => true)
    .AllowCredentials());
    

    如果有人能在可能发生的事情上帮助我,我将非常感激。

    谢谢大家!

    2 回复  |  直到 1 年前
        1
  •  2
  •   kiamehr hosseini    1 年前

    您应该在发布文件中将WebDAVModule和WebDAV添加到web.config中,如下所示:

    <system.webServer>
      <modules>
        <remove name="WebDAVModule" />
      </modules>
      <handlers>
        <remove name="WebDAV" />
      </handlers>
    </system.webServer>
    
        2
  •  0
  •   Amenawon Esezobor    1 年前

    确保应用程序。UseCors在应用程序之前调用。在应用程序之后使用Authorization()。在Startup.cs中使用Routing()。它们出现的顺序至关重要

    此外,在web.config文件中,您可能需要添加特定的设置,以允许所有标头或应用程序工作所需的标头。

     <system.webServer>
            <httpProtocol>
              <customHeaders>
                <add name="Access-Control-Allow-Origin" value="*" />
                <add name="Access-Control-Allow-Headers" value="Content-Type" />
                <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
              </customHeaders>
            </httpProtocol>
        </system.webServer>
    
    推荐文章