2014-09-02 3 views
0

내 앱 및 웹 개발에 각도를 사용하고 있습니다. 내 데이터를 보내고받는 데 $ http를 사용하지만 실제 요청을 수행하기 전에 항상이 OPTIONS 요청이 있습니다.AngularJS OPTIONS 요청을 사용 중지하거나 캐시합니다.

나는 그 요청의 목적을 알고있다. 그러나 이것은 아무 것도 할 수없는 대량로드가 될 것이고 나는 나의 서버에 모든 크로스 원점 헤더를 제공 할 것이다.

OPTIONS 요청 만 캐시하거나 비활성화 할 수있는 방법이 있습니까? x-www-form-urlencoded를 사용하고 싶지 않습니다.

아이디어가 있으십니까?

+0

에 등록 할 수 있습니다 헤더 응답의 나이 (초). 따라서 헤더에 다음 내용이 포함됩니다. AccessControlMaxAge : 3600 – Jon

답변

0

당신은 해제 요청

angular.module('myApp') 
.factory('myInterceptor', 
function ($q) { 
    var interceptor = { 
     'request': function (config) { 

     if(config.method === 'OPTIONS') return; 
     } 
    }; 
    return interceptor; 
}); 

에 대한 interceptor을 사용하고이 캐시 옵션을 지정하여 유효 기간을 명시 할 것 서버를 통해 설정해야합니다 설정

angular.module('myApp') 
    .config(function ($httpProvider) { 
    $httpProvider.interceptors.push([ 
     '$injector', 
     function ($injector) { 
      return $injector.get('myInterceptor'); 
     } 
    ]); 
+0

TypeError : $ http.serverRequest (http://192.168.178.20/lib/ionic/js/ionic.bundle.js:16965:25)에서 정의되지 않은 의 'header'속성을 읽을 수 없습니다.) – mrmow

+0

이 오류는 내 제안 된 코드에 따라 다릅니다. –

+0

꽤 확신합니다. 방금 내 코드에 줄을 추가했습니다. 전체 코드를 게시 할 수는 없지만 코드를 붙여 넣은 선은 게시 할 수 있습니다. http://pastebin.com/Asrd98A1 – mrmow

관련 문제