내 웹 API OData 서비스를 쿼리하려고 시도하는 중 400, 404 또는 405 오류가 발생합니다.Breezejs 웹 API OData 메서드가 허용되지 않습니다.
내 원격 서비스 이름으로 구성됩니다
breeze.config.initializeAdapterInstance('dataService', 'webApiOData', true);
그리고
내 데이터 컨텍스트에 내가 부르고 :var manager = entityManagerFactory.newManager();
return breeze.EntityQuery.from('Courses')
.using(manager).execute()
.then(success).catch(failed);
내가 내의 EntityManagerFactory에서
var remoteServiceName = 'http://localhost:50056/odata/';
나는 중 하나로, OData 설정 한 현재 오류가 발생하고 있습니다 :
XMLHttpRequest cannot load http://localhost:50056/odata/$metadata. No 'Access-Control-Allow-Origin' header is present on the requested resource
브라우저에서이 경로에 액세스 할 수 있습니다.
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
</customHeaders>
</httpProtocol>
을하지만 그건 그냥 내가 이러한 설정을 설정하려고 가지고
XMLHttpRequest cannot load http://localhost:50056/odata/$metadata. The 'Access-Control-Allow-Origin' header contains multiple values
나에게 준다 : 나는 다음과 같이 내 Web.config의에서 httpProtocol를 설정할 필요가 제안하는 몇 가지 자료를 발견했습니다 IIS 익스프레스의 applicationhost 설정 파일에서하지만 그 다음 나에게 제공합니다
Invalid HTTP status code 400
은 또한 들었 그 작동합니다 WebApiConfig 설정을 다음과 같은 추가 :
을 16,config.EnableCors();
는하지만 더 효과를 볼 수 없으며, 양자 택일 나는 시도했다 :도 효과가 없습니다
var cors = new EnableCorsAttribute(origins: "*", headers: "*", methods: "*");
config.EnableCors(cors);
합니다. 나는 내가 온라인에서 찾은 모든 자료를 다 써 버렸기 때문에 내가 누락 될 수있는 것이 무엇인지 알지 못한다.
저는 Visual Studio 2013 Express를 사용하고 IIS express를 사용하고 있습니다.
이것은 CORS 문제인 것처럼 보이지만 Breeze 문제는 아닙니다. 나는 당신이 당신이 그것을 가능하게했다고 말했고 당신처럼 보이지만 당신은 더 나은 증거가 필요합니다. 상대적으로 빠른 접근법 중 하나는 스크립트 태그가있는 HTML 페이지를 작성하는 것입니다. 스크립트 태그 안에는 OData 엔드 포인트에 대한 jQuery AJAX 호출이 있습니다. 성공적으로 리턴되면 콘솔에 기록하십시오. 그런 다음 개발 도구 (F12)를 열고 무슨 일이 진행되고 있는지 확인하십시오. – Ward
'$ .ajax ({ 유형 : "GET", url : "http : // localhost : 50056/odata/$ metadata" }) 을 사용해보세요.catch (function (err) {alert ("Failed :"+ err.message)}); ' – Ward
답장을 보내 주셔서 감사합니다. 그게 작동하지만 바람은 "No 'Access-Control-Allow-Origin'헤더가 요청 된 리소스에 있습니다." – socketman