无法使用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 (将#修改为@)