如何修复api网关中的cors问题

时间:2016-07-29 14:26:00

标签: amazon-web-services cors aws-api-gateway

我正在从AWS Gateway创建一个javascript SDK来调用我的api。我已经尝试添加多个标题,我遇到了文档和Web。但我找不到解决方案。我正在使用Facebook验证用户,我有api在python中工作。

AWS.config.region = region';
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
            IdentityPoolId: identityPoolId ,
            Logins: {
                'graph.facebook.com':fbTokenId

            }
        });
 AWS.config.credentials.get(function(){
            var identityId = AWS.config.credentials.identityId;
            var accessKeyId = AWS.config.credentials.accessKeyId;
            var secretAccessKey = AWS.config.credentials.secretAccessKey;
            var sessionToken = AWS.config.credentials.sessionToken;
            apigClient = apigClientFactory.newClient({
                                                        accessKey: accessKeyId,
                                                        secretKey: secretAccessKey,
                                                        sessionToken: sessionToken,
                                                        //region: region
                                                    });
apigClient.rootGet({},{},{})
                .then(function(result){
                  // Add success callback code here.
                 console.log("result : ");
                 console.log(result);
                }).catch( function(result){
                  // Add error callback code here.
                console.log(result);
                });

这是我在控制台中看到的错误。 无法加载资源:服务器响应状态为403(禁止) index.html:1 XMLHttpRequest无法加载https://####.us-west-2.amazonaws.com/####/。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许原点'null'访问。响应的HTTP状态代码为403.感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。区域不匹配。请使该地区正确。

根据文档: 如果指定常规端点(elasticmapreduce.amazonaws.com),Amazon EMR会将您的请求定向到默认区域中的端点。对于2013年3月8日当天或之后创建的帐户,默认区域为us-west-2;对于旧帐户,默认区域为us-east-1。