格式化来自 AWS Lambda 函数的文本响应



我一直在使用 AWS Lambda、API Gateway 和 S3 构建我的第一个无服务器 Web 应用程序。好消息是,我已经让它工作了,一切都在像我想要的那样相互交谈。坏消息是,我得到的文本回复很丑陋,我很难弄清楚如何解决它。

网站: http://wmcleanzodiac.s3-website-us-east-1.amazonaws.com

如果单击按钮以触发函数,您将看到响应的写法如下:

{"Your Zodiac sign is :" "result"}

我正在尝试删除引号和括号。我尝试了JSON.parse,但这只产生了对象对象。关于我可以在哪里找到解决方案的任何提示? 为了得到响应,我使用以下 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);
}
}
}

您将整个响应放入 HTML 元素中。

要解决此问题,一种方法是修改您的 lambda 以以下格式返回 JSON:{"result": "<the_result>"}。 然后使用以下命令显示它:resultElement.text(this.responseText.result);在你的 JavaScript 代码中。

最新更新