【发布时间】:2018-01-16 21:37:46
【问题描述】:
我有一个 lambda(节点)函数,当我使用 postman 调用它时可以正常工作,但当我使用 jquery $.ajax 时却不行。
正在使用 javascript/jquery 从本地 html 页面调用该函数。
我启用了 'Allow-Control-Allow-Origin' chrome 插件。
请求使用 possman 和 jQuery 传递相同的 json 对象。
{
"deviceid" : "ZZ-5A-04-A6-XX-YY"
}
我尝试了以下网关请求映射模板。
-
$input.json('$')当我记录偶数节点对象时,我看到以下行
deviceid=ZZ-5A-04-A6-XX-YY -
$input.body我得到错误:
无法将请求正文解析为 json:无法识别的令牌
【问题讨论】:
-
您的 jQuery.ajax 请求是什么样的?您是否传递了
Content-Type: application/json标头? -
如何使用 Lambda 代理集成?这要简单得多。切换不会立即解决您的问题,但会更容易维护和排除故障。
-
var hardobj = { "deviceid": "ADKNDND" }; $.ajax({ type: 'POST', url: API_URL, data: hardobj, dataType: 'json', headers: { 'Access-Control-Allow-Origin' : '*', 'Access-Control-Allow-Headers ':'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token', 'Access-Control-Allow-Credentials' : true, 'Content-Type': 'application /json' }, crossDomain: true, success: function (data) {getdatasuccess(data)}, error: function(data){ console.log("error = "+JSON.stringify(data)); } });
标签: amazon-web-services aws-lambda aws-api-gateway