2016-09-05 4 views
0

.NET System.Services.Data.DataService를 사용하여 구현 된 기존 OData 서버와 함께 BreezeJS를 사용하려고합니다. 버전 4.0. 보시다시피 BreezeJS는 $ OPTIONS 요청을 통해 $ metadata를 가져 오지만 서버는 NotImplemented 예외를 throw합니다. 브라우저에서 http GET을 사용하여 $ metadata를 수동으로 요청하면 XML 형식의 메타 데이터가 정상적으로 처리됩니다.

http GET을 사용하도록 Breeze를 구성하는 방법이 있습니까? 아니면 http 옵션을 지원하도록 서버를 조정해야합니까?

도움을 주시면 감사하겠습니다.

답변

0

OPTIONS 요청은 this answer에서 설명한대로 CORS의 일부입니다. CORS을 지원하도록 서버를 구성하거나 브라우저에서 교차 출처 요청을 사용하지 않아야합니다.

CORS와 함께 WCF를 사용하는 것에 대해서는 this answerthis answer을 참조하십시오. 웹 API로 전환하는 것이 좋습니다.

+0

이 부분은 정확하지만 혼란 스럽습니다. Breeze는 다른 어댑터를 사용하는 OData V1/V2 ("odata"), V3 ("webApiOData") 및 V4 ("webApiOdata4", 예비이지만 문서가 오래 되었음)를 지원한다고 주장합니다. 이 링크는 CORS 지원이 부족하여 Breeze가 V1/V2 (WCF DataServices)에서 작동하지 않는다는 것을 나타냅니다. CORS 지원은 웹 API로 이동해야만 구현할 수 있습니다. 이것은 서버 측에서 datajs 및/또는 Odata의 제한 일 수 있습니다. – user1211286

+0

CORS에 대한 지원은 서버 측에서 이루어져야합니다. 귀하의 응용 프로그램에서 CORS 지원이 필요합니까? –

+0

나는이 문제가 발생할 때까지 CORS조차 몰랐다. 서버는 Windows 서비스로 실행되고 지정된 포트에서 odata를 제공하는 기존 소프트웨어입니다. 현재 각도/브리즈 클라이언트는 분명히 다른 포트에 있지만 동일한 컴퓨터에 라이트 서버를 사용하여 개발되고 테스트 구동됩니다. 설정 변경 여부에 관계없이 문제가 무엇인지 알기 원하십니까? – user1211286