2012-09-28 2 views
4

도메인 간 Ajax POST 요청을 할 때 AngularJS는 먼저 HTTP OPTIONS 요청을 보냅니다. jQuery도 똑같은 일을한다. 차이점은 OPTIONS 요청에 오류가있는 경우입니다 (예 : 서버가 지원하지 않는 경우) jQuery가 계속해서 AngularJS가 자동으로 실패하고 포기하는 POST 요청을합니다. 그것에 관계없이 POST 요청을 강제로 수행 할 수있는 방법이 있습니까?AngularJS가 ajax OPTIONS 메소드를 무시하는 방법은 무엇입니까?

+4

나는 OPTIONS 요청이 브라우저 수준에서 처리된다고 생각합니다. 각도와 XHR에있는 $ http의 소스를 jQuery에서 보면 OPTIONS 요청에 대한 참조는 보이지 않지만 jQuery의 도메인 간 요청에 대한 헤더와 관련된 특정 코드가 있습니다. 참조 : https://github.com/angular/angular.js/blob/master/src/ng/http.js 및 https://github.com/jquery/jquery/blob/master/src/ajax/xhr. js. 이 문제에 대한 나의 해결책은 올바른 Allow-XXXX 헤더를 삽입하는 역방향 프록시를 만드는 것입니다. – Guillaume86

답변

3

Guillaume86이 OPTIONS 요청 (프리 플라이트 CORS 요청이라고도 함) 요청은 크로스 도메인으로 요청한 경우 브라우저에서 보냈습니다. 사양은 http://www.w3.org/TR/cors/입니다. 캐시 헤더를 설정하면 브라우저가 캐시합니다. 예 :

Access-Control-Max-Age: 1728000 
관련 문제