为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

江户川乱折腾 2021-05-07 14:12:15
我试图用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字符串。
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

如果使用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")

@ResponseBody

public 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;

}


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信