programing

'Access-Control-Allow-Origin' 헤더는 여러 값 '*, *'을 포함하지만 하나만 허용됩니다.

muds 2023. 2. 25. 22:25
반응형

'Access-Control-Allow-Origin' 헤더는 여러 값 '*, *'을 포함하지만 하나만 허용됩니다.

Angular랑 ASP를 쓰고 있어요.NET API제가 직면한 문제: API 코드에 CORS를 추가하면 Internet Explorer에서는 동작하지만 Chrome과 Firefox에서는 동작하지 않습니다.

다음은 오류입니다.

XMLHttpRequest는 http://localhost:41028/api/values/abc를 로드할 수 없습니다.'Access-Control-Allow-Origin' 헤더에는 여러 값 '*, *'이 포함되어 있지만 하나만 허용됩니다.따라서 오리진 'http://localhost:44796'은 액세스가 허용되지 않습니다.

이것은, 에 추가한 코드입니다.web.config파일:

<system.webServer>
...
<httpProtocol>
  <customHeaders>
      <!-- Adding the following custom HttpHeader will help prevent CORS errors -->
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>
...
</system.webServer>

에서WebApiConfigFile.cs추가한 파일:

var CorsAttribute = new EnableCorsAttribute("* ","* ", "* ");
        config.EnableCors(CorsAttribute);

저는 CORS를 처음 써봅니다.어떤 도움이라도 주시면 감사하겠습니다.

당신은 CORS를 두 번 설정하고 있습니다.그게 문제인 것 같아요.

1개의 CORS 설정을 삭제해 주세요.에서 삭제할 수 있습니다.web.config또는 에서WebApiConfigFile.cs.

Chrome 및 Firefox는 OPTIONS 동사를 사용하여 비행 전 점검을 수행합니다.

따라서 web.config에서 허용된 메서드에 OPTIONS를 추가해야 합니다.또한 다음과 같이 Application_Begin 요청에 코드를 추가해야 할 수도 있습니다.ASP에 대한 CORS 프리플라이트 요청 처리NET MVC 액션

다음은 CORS에 대한 몇 가지 리소스입니다.

IIS가 CORS Preflight OPTIONS 요청을 히지합니다.

http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

기타 모든 솔루션은 WebAPI용으로 제공되고 있습니다.이 솔루션은 웹 서비스(.asmx)를 API로 사용할 때 사용합니다.

다음 중 하나에서 'Access-Control-Allow-Origin' 세부 정보를 제거합니다.Global.asax.cs파일begin_request기능 또는 기능web.config이 설정은 한 곳에만 있어야 합니다.

이 이슈를 받은 이유는 제가 이 이슈를app.UseCors끝나고ConfigureOAuth순서를 변경하여 문제를 해결합니다.

    public void Configuration(IAppBuilder app)
    {
        HttpConfiguration config = new HttpConfiguration();

        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        ConfigureOAuth(app);

        WebApiConfig.Register(config);

        // Used to put this line after ConfigureAuth(app), 
        // app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        app.UseWebApi(config);
    }

자세한 내용은 다음과 같습니다.

  • 처음에 호출할 때 'Access-Control-Allow-Origin'에서 Origin이 허용되지 않습니다.\token.
  • LSo 커스텀 추가'Access-Control-Allow-Origin', 'Access-Control-Allow-headers', 'Access-Control-Allow-methods'를 포함하는 헤더입니다.수정했습니다.\token부탁한다.
  • 그런데 detail api를 호출할 때 "Access-Control-Allow-Origin"이 중복됩니다.이 문제를 해결할 수 없다는 등 많은 제안이 있다.

저도 같은 문제가 있었어요.*(아래 참조)가 아닌 정확한 도메인을 넣었더니 효과가 있었습니다.

var CorsAttribute = new EnableCorsAttribute("https://www.mywebsite.com", ""), 구성.EnableCors(CorsAttribute);

똑같은 오류가 있었는데 그 이유는

"Access-Control-Allow-Origin: *"

헤더가 IIS HTTP 응답 헤더 목록에 이미 있습니다.

명단에서 삭제한 것이 나에게는 효과가 있었다.

언급URL : https://stackoverflow.com/questions/29524036/the-access-control-allow-origin-header-contains-multiple-values-but-on

반응형