2017-12-21 5 views
1

javascript SDK를 사용하여 cloudsearch 도메인을 구현하는 데 필요한 다음 코드가 있습니다.Amazon Cloudsearch가 작동하지 않습니다.

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <script src="aws-sdk-2.172.0.js"></script> 
    <script type="text/javascript"> 
    console.log(AWS); 
    AWS.config.apiVersions = { 
     cloudsearch: 'latest', 
    }; 
    var csd = new AWS.CloudSearchDomain({endpoint: 'search-mydomain-xxxxxxxxxxxxx.us-west-2.cloudsearch.amazonaws.com',region:'us-west-2'}); 
    var params = {query:'test'}; 
    csd.search(params, function (err, data) { 
     if (err) console.log(err, err.stack); 
     else  console.log(data); 
    }); 
    </script> 
</head> 
<body> 

</body> 
</html> 

그러나 콘솔에 오류가 표시

프리 플라이트 요청에 대한 응답은 액세스 제어 검사를 통과하지 않습니다 : 없음 '액세스 제어 - - 원산지 허용'헤더는 요청에 존재 리소스. 따라서 'http://example.com'은 액세스가 허용되지 않습니다. 응답의 HTTP 상태 코드는 400입니다.

코드 및 aws 계정을 변경하려면 어떻게해야합니까?

답변

0

CloudSearch는 교차 원천 공유 (CORS) 요청을 지원하지 않으므로 CloudSearch 도메인에 직접 비동기 요청을 할 수 없습니다. 이 문제를 해결할 때 API 서비스 게이트웨이를 만들어 CORS 지원을 추가했습니다. 따라서 API 게이트웨이는 요청을 수락하고 CORS를 사용하도록 필요한 헤더를 설정 한 다음 요청을 CloudSearch 도메인으로 릴레이합니다.

: 여기

은이 설정에 도움이 될 수있는 링크의 커플