Я развернул войну весенней загрузки на сервере приложений Jboss. Я использую ajax и xmlhttprequest для вызова rest apis, который я определил в RestCOntrollers. У меня есть конечная точка /login
в одном из моих RestController, который возвращает json. когда я развертываю приложение во встроенном Tomcat, я могу получить доступ к конечной точке /login
на 127.0.0.1:8080/login
и войне на 127.0.0.1:8080/
, поэтому я написал свой код javascript вот так
var formData = new FormData();
formData.append("username", username);
formData.append("password", password);
var xhr = new XMLHttpRequest();
xhr.open("POST", "/login");
xhr.onload = function () {
console.log(xhr.responseText);
var response = JSON.parse(xhr.responseText);
if (xhr.status == 200) {
if (response.sessionID == null) {
document.getElementById("errormssg").innerHTML = '<div class="alert alert-danger" role="alert"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>Username or password incorrect.</div>';
} else {
window.location.replace("/home");
}
} else {
document.getElementById("errormssg").innerHTML = '<div class="alert alert-danger" role="alert"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>Please try after some time.</div>';
}
setTimeout(function () {
document.getElementById("errormssg").innerHTML = '';
document.getElementById('signinbtn').disabled = false;
}, 5000);
}
xhr.send(formData);
}
вот как Я написал код в RestController
@PostMapping("/login")
public UserResponse loginUser(@RequestParam("username") String userName,
@RequestParam("password") String passWord) {
return loginService.connect(userName, passWord);
}
, когда разворачиваю войну на JBoss. URL-адрес для доступа к моей войне становится serverIp:8080/warname
. когда я вызываю свою конечную точку /login
, используя приведенный выше код, я получаю статус «Не найдено» 404. Однако, когда я меняю /login
на login
и window.location.replace("/home")
на window.location.replace("home")
, он работает нормально. в чем проблема?