无法从 GET 响应中读取值
2020-04-23
76
TL:DR 如下
所以,我现在正在学习 Spring 教程之一,制作一个 REST API 应用程序。在后端有一个电子邮件验证服务,它获取令牌进行验证,验证后它会给出状态为“SUCCESS”或“ERROR”的简单响应 - 所有这些都运行正常。在前端有一个简单的 HTML 页面,其中包含一个 JS 脚本,该脚本应该检查此响应状态,并根据其值在 HTML 正文中显示不同的消息。问题是 JS 无法从响应中读取值(我猜),因为无论如何它总是给我“else”选项。我没有 JS 知识,我尽力自己弄清楚了,但没有成功。
TL:DR JS 脚本无法从响应中读取“operationStatus”值。
JS 脚本:
<script language="JavaScript">
$(document).ready(function () {
var urlParams = new URLSearchParams(location.search);
if (urlParams.has('token')){
verifyToken(urlParams.get('token'));
}
function verifyToken(tokenValue) {
$.get('http://localhost:8080/mobile-app-ws/users/email-verification', {token: tokenValue})
.done(function (response) {
if (response["operationStatus"] === "SUCCESS"){
$("#not-successful-result").attr("style", "display: none !important;");
$("#unknown-result").attr("style", "display: none !important;");
$("#successful-result").attr("style", "display: block !important;");
}else if (response["operationStatus"] === "ERROR"){
$("#successful-result").attr("style", "display: none !important;");
$("#unknown-result").attr("style", "display: none !important;");
$("#not-successful-result").attr("style", "display: block !important;");
}else{
console.log(response);
$("#successful-result").attr("style", "display: none !important;");
$("#not-successful-result").attr("style", "display: none !important;");
$("#unknown-result").attr("style", "display: block !important;");
}
})
}
})
</script>
HTML 正文:
<body>
<div id="successful-result" style="display:none">Successful verification</div>
<div id="not-successful-result" style="display:none">Verification link has expired</div>
<div id="unknown-result" style="display:none">UNKNOWN</div>
</body>
JAVA 响应类(RequestOperationStatus 和 RequestOperationName 只是简单的枚举)
public class OperationStatusModel {
private RequestOperationStatus operationStatus;
private RequestOperationName operationName;
}
Postman 以 JSON 格式的示例响应:
{
"operationStatus": "ERROR",
"operationName": "VERIFY_EMAIL"
}
以及浏览器中的控制台: https://i.sstatic.net/LuK6g.png
2个回答
更改
954294199
to
111222631
如果这不起作用。看看有什么回应。尝试这个。在该行之前
860303167
放置一个控制台。
sawili1495
2020-04-23