【发布时间】:2019-02-03 09:37:31
【问题描述】:
我正在努力使用 AWS Lambda 和 API Gateway。我可以从 curl 和 Postman 调用我的 API,但不能从我的浏览器调用。
这行得通
curl --header "Content-Type: application/json" \
--request POST \
--data '{ "baseId" : "app0ZJgZxm6LC8rBB", "tableName": "Stories", "action": "select" }' \
'https://gpzy1rrcwg.execute-api.us-east-1.amazonaws.com/Prod/'
这不起作用 (link to run it on CodePen)
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: 'POST',
url: 'https://gpzy1rrcwg.execute-api.us-east-1.amazonaws.com/Prod/',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify({
"baseId" : "app0ZJgZxm6LC8rBB",
"tableName": "Stories",
"action": "select"
}),
success: function (response) {
console.log(response)
alert('it worked')
},
error: function (err) {
console.log(err)
alert('it failed')
}
});
});
});
</script>
</head>
<body>
<button>Test</button>
</body>
</html>
【问题讨论】:
-
您能否从您的 lambda 获取日志,或者将其配置为在响应中返回异常和堆栈跟踪?您能否在浏览器的网络工具中检查请求正文以确保它与 curl 正文相同?
-
其实这可能是 CORS 问题。您是否为 CORS 设置了 Lambda?
标签: javascript jquery rest aws-lambda aws-api-gateway