li_0x79d1_0x9510 2017-04-19 07:45 采纳率: 50%
浏览 1006
已结题

通过ajax将jsp做的登录放在弹出框中提交时不能传递值

RT,下面是代码:
一:这是主页面单出窗的代码:

 <p id="login_reg">
                                <a class="btn btn-large btn-success"><b>登录/注册 </b></a>
                            </p>

                            <script>
        $('#login_reg').click(function() {
            layer.open({
                title : '登录/注册页面',
                time : 0,
                type : 1,
                skin : 'layui-layer-rim', //加上边框
                area : [ '1000px', '500px' ], //宽高
                content : $('#login_reg_window')
            });
        })
    </script>
    <script>
        $("#login_frame").load(
                "${pageContext.request.contextPath}/page/bizPage/login.jsp",
                function(response, status, xhr) {
                    $('#login_frame').html(response);
                });
    </script>
    <script>
        $("#register_frame").load(
                "${pageContext.request.contextPath}/page/bizPage/register.jsp",
                function(response, status, xhr) {
                    $('#register_frame').html(response);
                });
    </script>

二:被调用的jsp代码

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>登录页_房屋中介网站</title>
<link rel="stylesheet"
    href="${pageContext.request.contextPath}/ui/bs/css/bootstrap.min.css">
</head>
<body>
    <div class="container-fluid" id="login_frame">
        <div class="row">
            <div class="col-md-3"></div>
            <div class="col-md-6">
                <h1 style="text-align: center">登录</h1>
                <form class="form-horizontal" id="login_form" method="post"
                    style="padding-top: 50px; padding-bottom: 100px">
                    <div class="form-group">
                        <label for="user_account" class="col-sm-2 control-label">
                            用户名 </label>
                        <div class="col-sm-10">
                            <input type="text" class="form-control" id="user_account"
                                name="user_account" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="user_password" class="col-sm-2 control-label">
                            密码 </label>
                        <div class="col-sm-10">
                            <input type="password" class="form-control"
                                id="user_password" name="user_password" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label"> </label>
                        <div class="col-sm-10">
                            <div class="form-group">
                                <div class="col-sm-4">
                                    <input type="checkbox" name="set_login_cookies" /> 下次自动登录
                                </div>
                                <div class="col-sm-7">
                                    <div class="form-group">
                                        <div class="col-sm-10">
                                        </div>
                                        <div class="col-sm-2">
                                            <input type="submit" class="btn btn-primary" id="login_button" value="登录">
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
            <div class="col-md-2"></div>
        </div>
    </div>

    <script src="${pageContext.request.contextPath}/ui/bs/js/jquery.min.js"></script>
    <script
        src="${pageContext.request.contextPath}/ui/bs/js/bootstrap.min.js"></script>
    <script>
    $(function() {
            $('#login_button').unbind("click").bind("click",function() {
                                $.ajax({
                                    type : 'POST',
                                    url : '${pageContext.request.contextPath}/userBiz',
                                    dataType : 'json',
                                    data : "user_account="+$("#user_account").val()+"&user_password="+$("#user_password").val()+"&action=login",                                                                                
                                    //data: "user_account=admin&user_password=admin&action=login",
                                    success : function(msg){
                                        if(msg.result==1){
                                            alert("登陆成功");
                                            location.reload();
                                        }else{
                                            alert(msg.msg);
                                        }               
                                    }
                                        })
                            })
        })
    </script>
</body>
</html>

如果单独使用登录页面的话后台可以接收到输入的用户名密码,但是通过主页面弹出到后,后台就接收不到用户名密码

  • 写回答

5条回答 默认 最新

  • beamofsoul 2017-04-19 07:53
    关注

    通过序列化form表单的方式提交到后台,过程中可能需要转换成JSON,以便后台直接拿到Mapping好数据的Object

    var savingFormData = $('#'+formId).serializeObject();
    var formData = formatNonstandardData2JSON(savingFormData);
    
    $.ajax({
        headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
        },
            type: "POST",
            url: url,
            data: formData,
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                console.log(XMLHttpRequest.responseText);
        },
            success: function(data) {
                sucFunc(data);
            }
        });
    
    function formatNonstandardData2JSON(data){
        var newData = new Object();
        var m = 1;
        for(i in data){
            var obj = formatOneElement(i, data[i]);
            newData = $.extend(true, newData, obj);
            m++;
        }
        return JSON.stringify(newData);
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名