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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题