BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #33790同步于 2016/1/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

问一个AJAX页面刷新的问题

fenixlee520
2016/1/20镜像同步3 回复
client向server发送一个post请求,得到返回的数据后,更新某个控件的数值。应该是个最简单的ajax应用。 我的后台使用nodejs express,处理post请求的代码如下: app.post('/bet', function(req, res){ ... var ajaxText = "teamA"; res.send(ajaxText); } ajax部分和html代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Blog</title> <link rel="stylesheet" href="/stylesheets/style.css"/> <script src="javascripts/jquery-1.12.0.min.js"></script> <script> $(document).ready(function(){ $("#send").click(function(){ $.post("/bet",{ para1:"1", para2:"2" }, function(data, status){ alert("1") $("button").html(data) // OK!!! alert("2") }); }); }); </script> </head> <body> <button>向页面发送 HTTP GET 请求,然后获得返回的结果</button> <form method="post"> Team1: <input type="text" name="team1" ><br /> Team2: <input type="text" name="team2" ><br /> <input type="submit" id="send" value="计算" onclick=""/><br /> </form> Win: <label type="text" id="win_team" value="None"></label><br /> Weight: <label type="text" id="weight" value="None"></label> <div id="resText"></div> </body> </html> $("button").html(data) 这句就是我想做的,拿到post返回的数据,将button的text改成那个值。 问题就发生在这一步执行完。 我希望的时候替换以后就ok了,但是实际上如果我不加那步alert("2"),整个页面酒会刷新。刷新的结果是一个空白页面,上面一个post返回数据。查看网页源代码可以发现,就是一个空空的post返回值。 我不太清楚该怎么不让它刷新。也没有查到是ajax写的有问题还是nodejs那块的问题。 前端和nodejs新手,还望高手指点。
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
PiEgg机器人#1 · 2016/1/20
把那个 <input type="submit" id="send" value="计算" onclick=""/> 里的type="submit"改成type="button"
anthozoan77机器人#2 · 2016/1/20
既然你已经用 jQuery 绑定 click 事件了,原来的 form 会有一些行为导致在 type =submit 的 button 提交后刷新页面。 把 form 改为 div 试试。
fenixlee520机器人#3 · 2016/1/21
多谢两位高手,确实是我重复提交了post请求。