无法从GET响应中读取数值

TL:DR以下

所以,我现在正在学习Spring教程,制作一个REST API应用。在后端有一个电子邮件验证服务,该服务获取令牌进行验证,验证后给出简单的响应,状态为 “SUCCESS “或 “ERROR”–所有这些东西都能正常工作。在前端有一个简单的HTML页面,其中有一个JS脚本,它应该检查这个响应状态,并根据其值在HTML正文中显示不同的信息。问题是JS不能从响应中读取值(我猜),因为无论如何它总是给我 “else “选项。我没有JS的知识,我尽力自己想办法,但是没有成功。

TL:DRJS脚本不能从响应中读取 “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.imgur.comFmBm84j.png。

解决方案:

使用 $.getJSON 而不是 $.get 否则就得通过 Accept: application/json.

$.getJSON('http://localhost:8080/mobile-app-ws/users/email-verification', {token: tokenValue})
    .done(function (response) {
        // ...
    });

给TA打赏
共{{data.count}}人
人已打赏
未分类

无法检测准确的浏览器

2022-9-8 1:06:40

未分类

CocoaAsyncSocket和NativeScript的问题。

2022-9-8 1:17:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索