gpt4 book ai didi

javascript - 使用 Javascript 和 REST 登录

转载 作者:行者123 更新时间:2023-12-02 13:16:17 25 4
gpt4 key购买 nike

我做了一个 REST 服务,如果登录正确,它将返回一个字符串“hej”。我已经在 J​​ava 中使用 Rest 客户端进行了测试,它工作正常,但对于 javascript 来说还很陌生,需要一些帮助。

我正在使用这个功能

function UserAction() {
console.log(User());
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "http://localhost:8080/Footballmanagerrestservice/webresources/login");
xhttp.setRequestHeader("login", User());
xhttp.responseType = 'text';

xhttp.onreadystatechange = function () {
console.log('DONE', xhttp.readyState);
if (xhttp.readyState == 4) {;
// handle response
var response = xhttp.responseText;
console.log(response);
if (response == "hej") {
var url = "http://localhost:8080/FM3/spil2.jsp";
window.location.href = url;
}
}
};

// send the request *after* the callback is defined
xhttp.send();
return false;
}

function User() {
username = document.getElementById("username").toString();
username = document.getElementById("password").toString();
var UserAndPass = "?username=" + username + "&password=" + password;
return UserAndPass;
}

我向您展示了我的 Java 客户端,也许您可​​以明白为什么它不起作用。

public static void main(String[] args) {
Client client = ClientBuilder.newClient();

String root="http://localhost:8080/Footballmanagerrestservice/webresources/";


String functionPath="login";

String parameters="?username=s153518&password=holger";
Response res = client.target(root+functionPath+parameters)
.request(MediaType.APPLICATION_JSON).get();
String svar = res.readEntity(String.class);
System.out.println(svar);
}

最佳答案

代码的第一部分看起来不错,以下部分必须在函数内处理,因为本质上是异步的

var response = JSON.parse(xhttp.responseText);
console.log(response);
if (response.toString() == "hej") {
var url = "http://localhost:8080/FM3/spil2.jsp";
window.location.href = url
}
return false;

文档:https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/onreadystatechange

本质上,您试图将响应作为同步调用来处理,但事实并非如此,响应不是立即可用的,因此您必须注册一个回调(来自文档的回调必须附加到字段 onreadystatechange),一旦服务器响应可用,就会由 javascript 触发。

尝试像这样改变它:

  xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
// handle response
var response = JSON.parse(xhttp.responseText);
console.log(response);
if (response.toString() == "hej") {
var url = "http://localhost:8080/FM3/spil2.jsp";
window.location.href = url
}
}
}

xhr.send();

关于javascript - 使用 Javascript 和 REST 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43759651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com