2016-11-03 3 views
1

AngularJS 1 프로젝트를 만들었으며 POST를 사용하여 성공적으로 검색 기능을 사용할 수 있습니다. 우리는 색인에 문서를 추가하기위한 컨트롤러를 추가하지만 우리는 메시지를문서 액세스 거부 추가

XMLHttpRequest를 점점 계속 : 네트워크 오류 0x80070005와이 액세스

우리가 검색 같은 인덱스를 거부됩니다.

색인에 CORS가 사용 설정되어 있는지 확인했습니다.

는 여기에 우리의 코드입니다 : 거기 당신은 새 문서를 추가하는 REST를 사용하여 문서, 그래서 우리가 무엇을 놓치고 있는지 확실하지 않다

var value = [ 
    { 
    "@search.action": "mergeOrUpload", 
    "id": vm.id, 
    "name": vm.name, 
    "keywords": vm.keywords, 
    "url": vm.url 
    } 
]; 

var url = "https://xxx.search.windows.net/indexes/xxx/docs/index?api-version=2015-02-28"; 

ModalService.showLoading(); 

$http({ 
    method: "POST", 
    url: url, 
    headers: { 
    "api-key": "XXX", 
    "Content-Type": "application/json" 
    }, 
    data: { 
    "value": value 
    } 
}) 
.success(function (data, status) { 
    vm.results = data; 
    ModalService.hideLoading(); 
}) 
.error(function (data, status) { 
    ModalService.hideLoading(); 
    ModalService.showError(data); 
}); 

.

답변

1

Azure 검색은 CORS를 통해서만 쿼리를 허용합니다. 이것은 MSDN에 설명되어 있습니다 : 브라우저가 모든 출처 간 요청을 방지 할 수 있기 때문에

CORS 옵션 클라이언트 측 자바 스크립트는 기본적으로 어떤 API를 호출 할 수 없습니다. 색인에서 원본 교차 쿼리를 허용하려면 corsOptions 특성을 설정하여 CORS (Cross-Origin Resource Sharing)를 사용 가능하게 설정하십시오. 보안상의 이유로 쿼리 API 만 CORS을 지원합니다.

클라이언트가 색인을 수정하기 위해 관리 API 키에 액세스해야하고 클라이언트를 신뢰할 수 없기 때문에 클라이언트가 나쁜 생각 인 것 같습니다.

먼저 클라이언트를 인증 할 수있는 서비스에서 색인을 수정하는 작업을 수행하는 것이 좋습니다.