我正在从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.感谢您的帮助。
答案 0 :(得分:0)
我发现了这个问题。区域不匹配。请使该地区正确。
根据文档: 如果指定常规端点(elasticmapreduce.amazonaws.com),Amazon EMR会将您的请求定向到默认区域中的端点。对于2013年3月8日当天或之后创建的帐户,默认区域为us-west-2;对于旧帐户,默认区域为us-east-1。