Javascript 格式化来自AWS Lambda函数的文本响应
我一直在努力使用AWS Lambda、API网关和S3构建我的第一个无服务器web应用程序。好消息是,我已经让它工作了,所有的东西都在像我希望的那样互相交谈。坏消息是,我收到的短信回复很难看,我很难找到解决办法 网站: 如果单击按钮触发该函数,您将看到响应如下所示:Javascript 格式化来自AWS Lambda函数的文本响应,javascript,amazon-web-services,aws-lambda,Javascript,Amazon Web Services,Aws Lambda,我一直在努力使用AWS Lambda、API网关和S3构建我的第一个无服务器web应用程序。好消息是,我已经让它工作了,所有的东西都在像我希望的那样互相交谈。坏消息是,我收到的短信回复很难看,我很难找到解决办法 网站: 如果单击按钮触发该函数,您将看到响应如下所示: {"Your Zodiac sign is :" "result"} 我正在尝试删除引号和括号。我尝试了JSON.parse,但这只产生了object。有没有关于我可以在哪里找到解决方案的提示? 为了获得响应,我使用以下javas
{"Your Zodiac sign is :" "result"}
我正在尝试删除引号和括号。我尝试了JSON.parse,但这只产生了object。有没有关于我可以在哪里找到解决方案的提示?
为了获得响应,我使用以下javascript函数:
<script>
function Lambda(){
var month = document.getElementById("inmonth").value;
var day = document.getElementById("inday").value;
var date = {month : month, day : day};
const xhttp = new XMLHttpRequest();
const url= 'https://c50vvxrko9.execute-api.us-east-1.amazonaws.com/Zodiac'
xhttp.open("POST", url, true);
xhttp.send(JSON.stringify(date));
xhttp.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200) {
var resultElement = $("#sign-result");
resultElement.text(this.responseText);
}
}
}
函数Lambda(){
var month=document.getElementById(“inmonth”).value;
var day=document.getElementById(“inday”).value;
var date={月:月,日:日};
const xhttp=new XMLHttpRequest();
常量url=https://c50vvxrko9.execute-api.us-east-1.amazonaws.com/Zodiac'
xhttp.open(“POST”,url,true);
send(JSON.stringify(date));
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
var resultElement=$(“#签署结果”);
resultElement.text(this.responseText);
}
}
}
将整个响应放入HTML元素中
要解决此问题,一种方法是修改lambda以如下格式返回JSON:{“result”:“}
。
然后使用:
resultElement.text(this.responseText.result)显示它代码>在javascript代码中。这与python有什么关系?它通过API网关调用的AWS Lambda函数是用python编写的。我把它放在这里,以防它以某种方式影响结果的传递方式,或者这正是我需要进行更改的地方。一些小评论:使用const
(或者let
)而不是var
,使用{month,day}
而不是{month:month,day:day}
,使用==
而不是=
。在Lambda和Javascript中对代码进行了一些修改,使其工作起来,但确实如此!非常感谢。