Aws lambda 带有查询参数的GET请求返回403错误(签名不匹配)-AWS放大 问题
我试图在客户端使用带有查询参数的“aws amplify”GET API request,但结果是请求失败,状态代码403,响应显示:Aws lambda 带有查询参数的GET请求返回403错误(签名不匹配)-AWS放大 问题,aws-lambda,serverless,aws-amplify,dynamodb-queries,Aws Lambda,Serverless,Aws Amplify,Dynamodb Queries,我试图在客户端使用带有查询参数的“aws amplify”GET API request,但结果是请求失败,状态代码403,响应显示: "message":"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service docu
"message":"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
注意:React.js作为前端,Javascript作为后端。
我的代码
前端
后端
我对调试做了什么
返回API.get(apiName,path)
,则不会显示错误return API.POST()
),现在一切正常
如果有人能提供更详细的解释,那将非常有用。我更改了GET to POST(return API.POST()
),现在一切正常
如果有人能提供更详细的解释,那将非常有帮助。我也面临同样的问题。我认为这根本不是一个解决办法。您刚刚更改了RESTAPI的方法类型。你有没有找到让REST GET API amplify工作的解决方案?@SiddharthChoudhary在这里的例子中,查询参数在消息体中,而不是在URL字符串中附加它。POST方法是我一直在寻找的。如果要使用GET方法,则应在url字符串中追加参数。如果你想坚持使用GET方法,你可以参考这个@SiddharthChoudhary,你必须从Amazon API Gateway将该方法的授权从AWS_IAM更改为None谢谢你的回复。我确实找到了解决方案,这是AWS Amplify的IOS SDK的一个问题,他们解释我的论点的方式(有“:”)。这可能与SDK内部试图将其编码为的错误编码有关。愚蠢的AWS@悉达多胡达里,解决办法是……?我面临着同样的问题。我认为这根本不是一个解决办法。您刚刚更改了RESTAPI的方法类型。你有没有找到让REST GET API amplify工作的解决方案?@SiddharthChoudhary在这里的例子中,查询参数在消息体中,而不是在URL字符串中附加它。POST方法是我一直在寻找的。如果要使用GET方法,则应在url字符串中追加参数。如果你想坚持使用GET方法,你可以参考这个@SiddharthChoudhary,你必须从Amazon API Gateway将该方法的授权从AWS_IAM更改为None谢谢你的回复。我确实找到了解决方案,这是AWS Amplify的IOS SDK的一个问题,他们解释我的论点的方式(有“:”)。这可能与SDK内部试图将其编码为的错误编码有关。愚蠢的AWS@悉达多胡德哈里,解决办法是。。。。?
function getData() {
const apiName = 'MyApiName';
const path = '/path';
const content = {
body:{
data:'myData',
},
};
return API.get(apiName, path, content);
}
try {
const result = await dynamoDbLib.call("query", params);
} catch (e) {
return failure({ status: false });
}