问题描述:
前台页面
<input type="button" class="inputbutton" id="btnlogin" value="登录" />
show.js:
$("#btnlogin").click(function(){
$.ajax( {
url : "LoginAction",
type:"post",
dataType:"json",
data:"username="+userName,
timeout:20000,
success:function(){}
});
});
点击登录按钮时,会重复提交数据。百思不得其解!
原因分析:
看了网友们的分析,有的说是“两次提交的原因是在执行完ajax请求后,并没有阻止submit的行为,解决方式是不使用type为submit类型的按钮,而是使用type是button的按钮”可是我用的就是type=button的按钮啊,故此原因排除。还有网友说这是jQuery的Bug,经测试在我写的程序里的其他页面也用到类似方法,并没有发生这种现象,故此原因也排除。
后来经过一番摸索,终于找到了原因所在:
我是在本页面(login.jsp)include 了(top.jsp),这两个页面中都引入了show.js:
<script type="text/javascript" src="js/show.js"></script>
这也就导致了引入两次show.js文件,所以会发生提交两次的现象。我把top.jsp文件中的
<script type="text/javascript" src="js/show.js"></script>
删除后,再没发生此种现象。至此,完美解决!
这次失误提醒我:以后写代码一定要细心。
分享到:
相关推荐
在使用JavaScript的Ajax请求时,如果在Ajax请求完成后没有阻止按钮的默认行为,即表单提交,就会发生“一次点击两次提交”的情况。下面详细探讨两种常用的解决办法。 ### 解决方案一:更改按钮的type属性 第一种...
然而,在某些情况下,我们可能需要取消正在发送的Ajax请求,例如用户点击了取消按钮或者有新的操作需要中断当前请求。本文将详细探讨如何在JavaScript和jQuery中终止正在发送的Ajax请求。 ### JavaScript终止Ajax...
6. **用户体验优化**:为了提供更好的用户体验,可以添加一些视觉反馈,比如禁用按钮以防止重复提交,或者显示一个加载动画。 在实际项目中,可能还需要处理更多细节,例如错误处理、请求超时、防止跨站请求伪造...
jQuery是一个流行的JavaScript库,它简化了许多复杂的JavaScript操作,如DOM操作、事件处理以及AJAX交互。AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种在不重新加载整个网页的...
jQuery提供了`$.ajaxStart()`和`$.ajaxStop()`来监听所有AJAX请求的开始和结束。同时,`$.ajaxComplete()`会在每个请求完成后触发,无论成功或失败。 ### 错误处理 使用`error`回调函数可以捕获和处理请求错误,如...
这个压缩包中的内容主要涉及两个关键知识点:图片点击放大缩小的实现以及Ajax请求时防止重复提交的处理。接下来,我们将深入探讨这两个主题。 首先,让我们来看看"图片点击放大缩小遮罩层"的实现。在网页设计中,为...
3. **AJAX请求**:在事件处理器中,使用`$.ajax()`函数创建一个异步请求,将用户选择的评分发送到服务器。设置请求类型(通常是POST)、URL、数据(通常是JSON格式)和其他配置项。 ```javascript $.ajax({ type: ...
在Web开发中,防止Ajax重复提交是一个重要的问题,因为这能有效避免服务器处理多次相同请求,从而减轻服务器负载,防止数据异常。jQuery提供了一种优雅的方式来处理这个问题,通过使用`$.ajaxPrefilter`方法,我们...
4. **构建Ajax请求**:使用jQuery的`$.ajax`方法发送一个HTTP POST请求到服务器,携带用户提交的数据。 ```javascript $.ajax({ type: 'POST', url: '/api/appendRow', // 替换为实际接口URL data: { column1: ...
为了解决这个问题,开发者需要确保表单只提交一次,防止不必要的数据重复处理或者服务器的重复计算。下面详细解释几种防止Layui表单重复提交的方法。 首先,在HTML表单中,为了避免在提交时页面刷新导致的重复提交...
在本场景中,当用户输入用户名并提交时,会触发一个Ajax请求,这个请求不会导致整个页面刷新,而是仅仅向服务器发送用户输入的用户名,请求验证是否已存在。 **2. jQuery** jQuery是一个轻量级的JavaScript库,简化...
防止重复发送Ajax请求是Web开发中常见的需求,尤其是在用户可能会连续点击按钮或快速输入时。以下是一些防止这种重复请求的方法: A. 独占型提交:这种方法确保同一时间只有一个提交操作正在进行。如果在提交过程中...
为了提升用户体验,可以添加loading指示器,显示提交过程,同时避免用户重复提交。可以使用$.ajaxStart()和$.ajaxStop()方法绑定开始和结束时的事件处理函数。 五、处理服务器响应 成功回调函数中的`response`参数...
最常见的应用场景之一是防止表单重复提交导致的服务器端数据重复。 在网络状况不佳或者用户不清楚操作状态时,用户可能多次点击提交按钮,这样会造成后端接收并处理重复数据。为了避免这种问题,可以在Ajax请求的`...
// 发送AJAX请求 sendComment(comment); }); }); ``` 3. **AJAX请求** `sendComment()`函数负责创建XMLHttpRequest对象并发送POST请求到服务器。 ```javascript function sendComment(comment) { $.ajax({ ...
在这个系统中,jQuery将用于监听用户的点击事件,当用户点击“喜欢”按钮时,触发AJAX请求。 1. **jQuery部分**: - 创建一个CSS类,如`.like-btn`,用于标记“喜欢”按钮。 - 使用jQuery的`$(document).ready()`...
在前端开发中,防止AJAX(Asynchronous JavaScript and XML)请求重复提交是一个常见的需求,尤其在用户快速点击或网络延迟时可能导致数据重复处理,从而带来不必要的问题。在本例中,作者提出了一种通过JavaScript...
5. **发送异步请求**:Ajax引擎独立向服务器发送请求,并允许用户继续进行其他操作。 6. **服务器处理请求**:服务器接收到请求后,根据请求内容进行处理,这可能涉及数据库查询或调用后端服务等。 7. **返回数据**...
5. **AJAX请求**:使用jQuery的`$.ajax()`方法发送异步请求,将评论数据(如用户名、邮箱、评论内容和验证码)发送到服务器。 6. **服务器处理**:服务器接收到请求后,验证数据的有效性(例如,检查验证码是否正确...