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