微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AJAX发布到AWS API网关不起作用不允许使用405方法,但可以与Postman一起使用

如何解决AJAX发布到AWS API网关不起作用不允许使用405方法,但可以与Postman一起使用

我使用引导程序构建了一个小的HTML表单,并将其作为静态网站托管在AWS S3存储桶中。然后,我添加一个AWS API Gateway和Lamda函数,以便将该表单中的数据存储到AWS DynamoDB中。

这时,我可以通过Postman将原始JSON数据“发布”到API网关,而Lambda函数将数据存储在DynamoDB表中。我在网站中创建了一个.ajax来收集数据并将其作为JSON发送。但我总是会收到此错误

enter image description here

我的AJAX:

$(document).ready(function(){
$("#form>button[type=submit]").click(function(event){
    event.preventDefault();

    let apiGatewayInvokeURL = 'https://gxt8igxck7.execute-api.eu-central-1.amazonaws.com/dev/test';
    
    var body = {
    KundenID : $("#KundenID").val(),Vorname : $("#Vorname").val(),Nachname : $("#Nachname").val(),Telefonnummer : $("#Telefonnummer").val(),Email : $("#Email").val(),Strasse : $("#Strasse").val(),Hausnummer : $("#Hausnummer").val(),PLZ : $("#PLZ").val(),Ort : $("#Ort").val(),Ankunftszeit : $("#Ankunftszeit").val(),Abreisezeit : $("#Abreisezeit").val(),datencheck : $("#datencheck").val() 
    };

    $.ajax({
        type: 'POST',url : apiGatewayInvokeURL,crossDomain: 'true',contentType: 'application/json; charset=utf-8',data: JSON.stringify(body),success: function () {
            $("#form").trigger('reset');
            alert('Successfull');
           },error: function (response) {
              alert('Failed: HTTP ' + response.status);
          }
          });  
       });
 });

我似乎找不到该错误的原因。 API网关可以清楚地处理POST请求,但是也许我对自己的工作有一个错误的认识。如果您需要更多数据,请告诉我。

谢谢!

编辑

这是提交时的Chrome的“网络”标签

enter image description here

似乎Post请求要转到S3存储桶服务器而不是API网关? 我的请求标头的Content-Type是application / x-www-form-urlencoded,不是吗,应该是application / json?

最后编辑

发现了错误..显然

$("#form>button[type=submit]").click(function(event)

无法正常工作。因此

event.preventDefault();

未被正确调用,并且该表单已本地发布到S3存储桶的网站主机,并且不允许POST请求。我将代码更改为

    $("#btn").click(function(event){
    event.preventDefault();

现在,在修复了一些较小的CORS错误后,它就像一种魅力一样工作。 也许这可以帮助某人

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。