【问题标题】:AWS Lambda + API Gateway POST ErrorAWS Lambda + API Gateway POST 错误
【发布时间】:2016-06-02 16:09:54
【问题描述】:

我有一个简单的 Lambda 函数,它接收一些文本,并将该文本作为响应返回。我将它与 AWS API Gateway 连接起来,并在他们的控制台和 Postman 上进行了测试。我启用了 CORS,Postman 上的标题似乎是正确的,Access-Control-Allow-Origin 设置为 *。

这是 Postman 的结果:

我无法让它在本地运行,所以我决定在这里托管一个静态页面:

https://smileyfacetest.firebaseapp.com/

test = {"text": ":)"}
$.post( "https://pq8thdrp0a.execute-api.us-west-2.amazonaws.com/dev", test)
    .done(function( data ) {
       console.log(data);
    });

但还是报错:

XMLHttpRequest cannot load https://pq8thdrp0a.execute-api.us-west-2.amazonaws.com/dev. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://smileyfacetest.firebaseapp.com' is therefore not allowed access. The response had HTTP status code 400.

我在前端做错了什么吗?如果它在 Postman 上运行,并且我在 API 的端点上启用了 CORS,我不明白它为什么会抛出错误。任何帮助将不胜感激!

如果您想在 Postman 中试用,这里是 API 端点:

https://pq8thdrp0a.execute-api.us-west-2.amazonaws.com/dev

【问题讨论】:

    标签: javascript amazon-web-services post aws-lambda cors


    【解决方案1】:

    我测试了你的电话,它有效。但是,您需要在 jQuery 调用中将 content-type 设置为 JSON:

    $.ajax({
        type: 'POST',
        url: '/form/',
        data: '{"name":"jonas"}', // or JSON.stringify ({name: 'jonas'}),
        success: function(data) { alert('data: ' + data); },
        contentType: "application/json",
        dataType: 'json'
    });
    

    我从How can I use JQuery to post JSON data?获取了这个sn-p

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      • 2019-12-21
      • 2018-10-13
      • 2018-03-22
      • 2021-03-30
      • 2016-03-16
      • 2017-10-04
      相关资源
      最近更新 更多