Struts2+Ajax 总是请求失败?

发布于 2022-09-06 03:44:12 字数 2976 浏览 31 评论 0

Struts2+Ajax 总是请求失败

总是走的失败分支,调试了一下午就是不知道哪里有问题,问了老师,结果调试半天,还是没解决,都快崩溃了,跪求各位大佬帮忙看下到底哪里有问题...

图片描述

下面代码

页面的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function () {
            $("#login").click(function () {
                var args = $("#form").serialize();
                var post = $.post("login", args, function (data) {
                    console.log(data);
                    alert(data);
                }, "text");

                post.error(function (data, status, xhr) {
                    alert(status);
                });
            });
        });
    </script>
</head>
<body>
<form id="form" method="post">
    账号: <input type="text" name="username"/><br>
    密码: <input type="password" name="password"/><br>
    <button id="login">登录</button>
</form>
</body>
</html>

action的

package com.fete.action;

import com.opensymphony.xwork2.ActionSupport;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;

public class LoginAction extends ActionSupport {

    private String username;
    private String password;
    private InputStream inputStream;

    public String login() throws IOException {
        System.out.println(username);
        System.out.println(password);
        String info="";
        if ("root".equals(username) && "root".equals(password))
            info = "登录成功";
        else
            info = "用户名或密码不正确";

        inputStream = new ByteArrayInputStream(info.getBytes("UTF-8"));
        
        return "success";
    }

    public InputStream getInputStream() {
        return inputStream;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

xml配置

<package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
        <action name="login" class="com.fete.action.LoginAction" method="login">
            <result name="success" type="stream">
                <param name="inputName">inputStream</param>
            </result>
        </action>
    </package>

这是action debug的结果

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

于我来说 2022-09-13 03:44:12
$.post("login", args, function (data)  这里的url试一下绝对路径看看
哆啦不做梦 2022-09-13 03:44:12

能访问到后台方法吗,可以的话。F12把网络访问的那个请求也截图出来吧,现在信息不够

锦爱 2022-09-13 03:44:12

ok,自己解决了,把输入框不放在表单里就可以了。但是,这是什么原理?

图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文