我有一个javascript函数,如下所示我在S3
托管它function myFunction() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if(this.readyState == 4 && this.status == 200){
document.getElementById("testing").innerHTML = this.responseText;
}
};
xhttp.open("GET","https://id.execute-api.ap-southeast-1.amazonaws.com/prod/lambdafunction", true);
xhttp.send();
}
此lambdafunction
写在Node.js
中,如下所示
'use strict';
console.log('Loading function');
exports.handler = (event, context, callback) => {
let response = {
statusCode: '200',
body: JSON.stringify({ error: 'you messed up!' }),
headers: {
'Content-Type': 'application/json',
}
};
context.succeed(response);
//callback(null, context); // Echo back the first key value
//callback('Something went wrong');
};
我的期望是,带有id测试的div将被error: 'you messed up!
取代,但什么都没发生?我可以知道哪个部分可能出错了吗?
答案 0 :(得分:1)
看起来您正在使用api(非常)旧节点v.0.10.42。
您似乎更有可能使用新版本,因此您应该:
callback(null, JSON.stringify({ error: 'you messed up!' }));
// if you are not using proxy integration
或
callback(null, response)
// if you set up the function with proxy integration
如果这没有帮助,那么在您直接访问网址时以及在AWS日志中看到任何内容时,了解您获得的内容会很有用。您还应该能够直接从AWS控制台调用lambda函数,这使得测试更容易。