如何解决无法使用AJAX和AWS API网关发布到AWS Lambda函数
我的代码是用作html中的“数字url书”。用户在文本字段中输入网址,然后单击提交按钮。提交后,该URL将发送到AWS lambda函数,该函数将条目记录在DynamoDB表中。另一个AWS Lambda函数读取表并在列表中向用户显示条目。
到目前为止,我已经能够使用AJAX和AWS API Gateway来获取DynamoDB表内容进行显示,但是我无法配置POST命令来调用将条目记录到DynamoDB表中的AWS lambda函数。每当我运行代码时,AWS都会在读取表的Lambda函数上显示调用,但不会在要写入/发布到表的函数上显示调用(即使多次单击提交按钮也是如此)。我的html代码的相关部分显示如下:加载api后,它将获取表内容并显示它们(没有问题),但单击命令后的底部不起作用。
<h1>Your URL List:</h1>
<div id="sites">
</div>
<h1>Enter Your URL</h1>
<form>
<label for="urls">url</label>
<textarea id="urls"></textarea>
<button id="submitButton">Submit</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript">
var API_URL = 'https://wnq9rrdc37.execute-api.us-east-2.amazonaws.com/prod/sites';
$(document).ready(function(){
$.ajax({
type: 'GET',url: API_URL,success: function(data){
$('#sites').html('');
data.Items.forEach(function(urlbookItem){
$('#sites').append('<p>' + urlbookItem.url + '</p>');
})
}
});
});
$('#submitButton').on('click',function(){
$.ajax({
type: 'POST',data: JSON.stringify({"url": $('#urls').val()}),contentType: 'application/json',success: function(data){
location.reload();
}
});
return false;
});
</script>
我已经在AWS API Gateway的POST命令的集成请求部分中配置了映射模板。模板如下。这可能是问题吗?
{
"url": $input.json('$.url');
}
对于任何有关我的代码出问题的地方(权限,html,ajax用法,api网关等-我不确定)的见解,我将不胜感激。
非常感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。