'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
'programing' 카테고리의 다른 글
클래스 기반 컴포넌트에서 React.forwardRef를 사용하는 방법 (0) | 2023.02.25 |
---|---|
TypeScript에서 문자열 유형 배열 테스트 (0) | 2023.02.25 |
MongoDB: '_id'가 아닌 'id' 출력 (0) | 2023.02.25 |
Angular 배열에서 항목을 제거하는 방법JS 스코프? (0) | 2023.02.25 |
문자열 중간에 문자 추가 (0) | 2023.02.25 |