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

jquery ajax post 提交数据,返回的是当前网页的html?

jquery ajax post 提交数据,返回的是当前网页的html?

咕咕问 2017-02-10 21:09:55
代码如下<body class="login_bg"> <form id="admin_form" class="login_main" id="login_main" action="/index.php" method="post">    <div class="login_name">        <label for="login_name">用户名:</label>        <input type="text" id="login_name" name="login_name" >        </div>    <div class="login_password">        <label for="login_password">密&nbsp;&nbsp;&nbsp;码:</label>        <input type="password" id="login_password" name="login_password" >        </div>                <div class="login_buttons">        <input id="login_submit" type="button" value="登陆" />                <input type="reset" value="重置" />        </div>                <input type="hidden" name="m" value="admin" />        <input type="hidden" name="c" value="login" />        <input type="hidden" name="a" value="login" />    </form>        <script src="/Public/js/jquery-3.1.1.min.js"></script>    <script src="/Public/js/bootstrap.min.js"></script>    <script type="text/javascript"> $("#login_submit").bind("click",function(){ var type = "post"; var url = "index.php?m=admin&c=index&a=checkLogin"; var formArrays = $("#admin_form").serializeArray(); var requestData = {}; for(var i=0; i<formArrays.length;i++){ //requestData[formArrays[i].name] = formArrays[i].value; //console.log(typeof formArrays[i].name); requestData[formArrays[i].name] = formArrays[i].value; } // 如果使用{ name: "John", time: "2pm" } 跳转通过$_POST 获取到的值没有问题,但是如果是上面的requestData 则会返回当前页面的html //requestData = { login_name: "John", login_password: "2pm",m:"admin",c:"index",a:"checkLogin" }; console.log(typeof requestData); var dataType = "json"; $.post(url,requestData,function(data){alert(data);}); });     </script>  </body>
查看完整描述

3 回答

?
咕咕问

TA贡献78条经验 获得超12个赞

错误原因找到

<input type="hidden" name="m" value="admin" />

        <input type="hidden" name="c" value="login" />

        <input type="hidden" name="a" value="login" />


跳转参数的问题

查看完整回答
反对 回复 2017-02-12
?
Caballarii

TA贡献1123条经验 获得超629个赞

你php的controller里返回的就是页面,那ajax得到的就是页面。

如果是thinkphp,请使用$this->ajaxReturn返回json数据

查看完整回答
反对 回复 2017-02-10
  • 咕咕问
    咕咕问
    thinkphp 我用的是echo 如果$.post不添加data的参数,返回值没有问问题 但如果添加的参数是直接通过 requestData = {"login_Name":"name"};这样的方式写,也没有问题 但是如果通过 var formArrays = $("#admin_form").serializeArray(); var requestData = {}; for(var i=0; i<formArrays.length;i++){ //requestData[formArrays[i].name] = formArrays[i].value; //console.log(typeof formArrays[i].name); requestData[formArrays[i].name] = formArrays[i].value; } 则返回本页面的html
  • 3 回答
  • 0 关注
  • 3571 浏览
慕课专栏
更多

添加回答

举报

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