H5W3
当前位置:H5W3 > 其他技术问题 > 正文

Struts2+Ajax 总是请求失败?

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的结果

图片描述

回答:

$.post("login", args, function (data)  这里的url试一下绝对路径看看

回答:

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

回答:

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

图片描述

本文地址:H5W3 » Struts2+Ajax 总是请求失败?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址