Javascript 无法从GET响应中读取值

Javascript 无法从GET响应中读取值,javascript,Javascript,TL:下面是DR 所以,我现在正在编写一个RESTAPI应用程序的Spring教程。在后端有一个电子邮件验证服务,它获取令牌进行验证,验证后,它会给出简单的响应,状态为“成功”或“错误”——所有这些都可以正常工作。在前面有一个简单的HTML页面,其中包含一个JS脚本,该脚本假设检查此响应状态,并根据其值在HTML正文中显示不同的消息。问题是JS无法从response(我按)读取值,因为不管发生什么,它总是给我“else”选项。我没有JS方面的知识,我尽了最大的努力想自己解决,但没有成功 TL:D

TL:下面是DR

所以,我现在正在编写一个RESTAPI应用程序的Spring教程。在后端有一个电子邮件验证服务,它获取令牌进行验证,验证后,它会给出简单的响应,状态为“成功”或“错误”——所有这些都可以正常工作。在前面有一个简单的HTML页面,其中包含一个JS脚本,该脚本假设检查此响应状态,并根据其值在HTML正文中显示不同的消息。问题是JS无法从response(我按)读取值,因为不管发生什么,它总是给我“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>
来自邮递员的JSON响应示例:

{
    "operationStatus": "ERROR",
    "operationName": "VERIFY_EMAIL"
}
浏览器中的主机和控制台: 改变

if (response["operationStatus"] === "SUCCESS")
...
}else if (response["operationStatus"] === "ERROR"){

如果这不起作用。看看有什么反应。试试这个。排队前

 if (response["operationStatus"] === "SUCCESS"){
放置一个console.log,如下所示

console.log(response);
改变

if (response["operationStatus"] === "SUCCESS")
...
}else if (response["operationStatus"] === "ERROR"){

如果这不起作用。看看有什么反应。试试这个。排队前

 if (response["operationStatus"] === "SUCCESS"){
放置一个console.log,如下所示

console.log(response);
使用,而不是必须传递
Accept:application/json

$.getJSON('http://localhost:8080/mobile-app-ws/users/email-verification', {token: tokenValue})
    .done(function (response) {
        // ...
    });
使用,而不是必须传递
Accept:application/json

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

根据控制台输出,您将返回某种XML文档。您可能需要添加一个
Accept:application/json
头或类似的头来告诉服务器向您发送json。是的,问题在于输出。脚本无法从XML中读取值。更改Java方法以生成JSON解决了这个问题。另外,将JS改为“getJSON”而不是“get”也可以。谢谢。根据控制台输出,您将返回某种XML文档。您可能需要添加一个
Accept:application/json
头或类似的头来告诉服务器向您发送json。是的,问题在于输出。脚本无法从XML中读取值。更改Java方法以生成JSON解决了这个问题。另外,将JS改为“getJSON”而不是“get”也可以。谢谢