2013-10-13 3 views
2

아래 코드가 상태가없는 오류 콜백을 실행하는 이유는 무엇입니까? Firefox의 웹 개발자는 상태 코드 200을보고합니다.

디버깅 할 방법이 있습니까?

<meta charset="utf8"> 

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script> 

<script type="text/javascript"> 

    function RoomListCtrl($scope, $http) { 

     $scope.getRooms = function() { 

       $http({method: 'GET', url: 'http://code.angularjs.org'}). 

       success(function(data, status, headers, config) { 
       // this callback will be called asynchronously 
       // when the response is available 
        alert('succes'); 
       }). 

       error(function(data, status, headers, config) { 
       // called asynchronously if an error occurs 
       // or server returns response with an error status. 
        alert('error'); 
       }); 
     } 

     $scope.submit = function() { 

      this.getRooms(); 
     } 

    } 

</script> 

<body ng-controller="RoomListCtrl"><form ng-submit="submit()"> 
    <input type="text" value="" ng-model="search" name="search" > 
</form></body> 

+0

실행중인 실제 코드입니까? 실제 요청이 차단되는 상태 (상태가 표시되지 않음) 인 [교차 도메인] (http://en.wikipedia.org/wiki/Same-origin_policy) 문제를 겪고있는 것 같습니다. – robertklep

+0

예, 실제 코드입니다. Firefox에서이 코드를 로컬 파일로 실행하고 있습니다. 그게 문제가 될 수 있습니까? – koen

+0

요청을 처리하는 원격 서버에 [CORS] (http : // enable-cors)가 없으면 일반적으로 도메인 간 AJAX 요청을 수행 할 수 없으므로 HTTP 서버를 통해 실행하더라도 오류가 발생합니다. org /)가 가능하지만,'code.angularjs.org'가 가지고있는 것처럼 보이지 않습니다. – robertklep

답변

1

@robertklep 위에서 지적한대로 해당 도메인이 명시 적으로 허용하지 않으면, 당신은 다른 도메인 아약스 요청을 할 수 없습니다 . 그가 제공 한 CORS 링크를 참조하십시오. 한 가지 해결 방법은 데이터를 요청하는 서버의 CORS 정책을 제어 할 수 없다고 가정 할 때 서버가 지원하는 경우 JSONP 요청을 사용하는 것입니다.

관련 문제