使用apigClient.js将Params传递给Lambda代理函数

时间:2017-05-24 00:51:23

标签: lambda aws-api-gateway

我有一个使用Lambda代理集成连接到端点的Lambda函数是API网关。端点是:

https://exmaple.com/fscms/dev/webhooks/ {updateshipping +}

我正在尝试使用API​​ Gateway(apigClient.js)提供的Javascript SDK来调用此端点,但是对于我的生活,我无法弄清楚如何设置params以使其工作。这是我得到的错误:

OPTIONS https://example.com/fscms/dev/webhooks/ 403 (Forbidden)

xhrAdapter @ axios.standalone.js:747
(anonymous) @ axios.standalone.js:516
dispatchRequest @ axios.standalone.js:512
/#/orders/list:1 XMLHttpRequest cannot load https://example.com/fscms/dev/webhooks/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://dev.example.com' is therefore not allowed access. The response had HTTP status code 403.

我可以整天用Postman调用这个端点并且没有问题所以我知道它设置正确并且正常工作。看起来我需要做一些事情才能让apigClient.js附加" updateshipping"到它正在调用的端点的末尾,但是我无法弄清楚这一点,并且谷歌搜索量没有给我任何提示。

这是我调用端点的代码:

    var apigClient = apigClientFactory.newClient();

    var params = {};
    var body = update;
    var additional_params = {};

    apigClient.webhooksUpdateshippingPost(params, body, additional_params)

    .then(function(result) {

        // This will grab error messages not generated by our server code.
        if (result.data.errorMessage) {
            $scope.shipping_info.error = result.data.errorMessage;
        }

        if(result.data.code === 0) {
            console.log(result.data.message);
        }
        else {
            $scope.shipping_info.error = result.data.message;
        }
    })

    .catch(function(result){
        $scope.shipping_info.error = result.data.message;
    }); 
};

有人有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,这是API网关生成的当前SDK的已知限制 - 它们不支持使用{proxy +} / ANY方法功能调用方法。

在我们的积压工作中添加支持。虽然我们无法承诺任何时间表,但我们可以在发布时更多信息更新此帖子。