猿问

发布404错误,但我的服务器可以正常运行数据,但无法正常返回

我试图用Spring Boot重写我的登录文件。目前,我的数据被很好地发布,后端正在获取它,但是我的成功功能没有被解雇。我的后端没有抛出任何错误,但是在浏览器上却出现404错误。


这是我的帖子:


$.ajax({

    type: "POST",

    url: "login", 

    data: "&username=" + username.value + "&password=" + password.value

}).done(function(response) {

    var resp = JSON.parse(response); 

    if (resp.loginResult === "false") {

        //TODO

    } else {

        //TODO

    }

});

控制器:


@Controller

@Scope("session")

public class LoginController {


    @GetMapping("/login")

    public String login() {

        return "login";

    }


    @PostMapping("/login")

    public String login(HttpServletRequest request) {

        HttpSession session = request.getSession();

        StringBuilder json = new StringBuilder();


        String username = request.getParameter("username");

        String password = request.getParameter("password");


        if (userExists()) {

            session.setAttribute("isLoggedIn", "true");

            session.setAttribute("userID", username);

            session.setAttribute("userType", "employee");

            json.append("{");

            json.append("\"loginResult\": \"true\",");

            json.append("\"resultMessage\": \"Logged in\"");

            json.append("}");

        } else {

            System.out.println("Username or password does not match.");

            json.append("{");

            json.append("\"loginResult\": \"false\",");

            json.append("\"resultMessage\": \"Bad Login\"");

            json.append("}");

        }

        return json.toString();

    }

}

我试图返回一个可以在前端解析的JSON字符串,然后根据进行任何需要做的事情resultMessage。抱歉,如果我的代码很丑陋,我还是Spring的新手,欢迎提出任何建议!


这是我的控制台在浏览器上的错误:


POST http://localhost:8080/BedrockWeb/login 404 ()

我假设我没有正确返回我的JSON字符串。


江户川乱折腾
浏览 125回答 2
2回答

青春有我

如果使用Spring,请使用它提供的便利。您可以创建以下类:public class LoginResult {    private boolean loginResult;    private String resultMessage;    public LoginResult() { }    public String getResultMessage() {        return resultMessage;    }    public boolean isLoginResult() {        return loginResult;    }    public void setLoginResult(boolean loginResult) {        this.loginResult = loginResult;    }    public void setResultMessage(String resultMessage) {        this.resultMessage = resultMessage;    }}然后,您必须将控制器方法更改为:@PostMapping("/login")@ResponseBodypublic LoginResult login(HttpServletRequest request) {    HttpSession session = request.getSession();    String username = request.getParameter("username");    String password = request.getParameter("password");    LoginResult loginResult = new LoginResult();    if (userExists()) {        session.setAttribute("isLoggedIn", "true");        session.setAttribute("userID", username);        session.setAttribute("userType", "employee");        loginResult.setLoginResult(true);        loginResult.setResultMessage("Logged in");    } else {        System.out.println("Username or password does not match.");        loginResult.setLoginResult(false);        loginResult.setResultMessage("Bad Login");    }    return loginResult;}
随时随地看视频慕课网APP

相关分类

Java
我要回答