问题描述:
在做项目的过程中,碰到了如下一个问题,花了我两天的时间、、、⊙﹏⊙b汗
问题起因:由于在项目中使用的是Jquery Ajax保存的表单,现在页面上有如下两个表单:
form,和subform,
其中form中的主要内容是几个checkbox和文本框
subform中的主要内容是三个文件上传框
后台jQuery代码如下:
function submitAdminForm2(formName) {
clearError();
if(isNaN($("#pdaysvalue").val())){
alert("Please enter number for Person days! ");
return false;
}
frm = document.getElementById(formName);
frmsub = document.getElementById(formName + "sub");
var options = {
//target: "#errormessage",
success: showResponse, // post-submit callback
error: function(XMLHttpRequest, textStatus, errorThrown) {
location.href = "../../error/c500Error.jsp?exception=clear";
}
};
if(frmsub == null) {
$(frm).ajaxForm(options);
$(frm).submit();
} else {
//if($("#logo1").val() != null && $("#logo1").val() != ""||
// $("#applogo1").val() != null && $("#applogo1").val() != ""||
// $("#char1").val() != null && $("#char1").val() != ""
// ) {
$("#hiddenlogo1").val($("#logo1").val());
$("#hiddenapplogo1").val($("#applogo1").val());
$("#hiddenchar1").val($("#char1").val());
$(frm).ajaxForm(options);
$(frm).submit();
//}
$(frmsub).ajaxForm(options);
$(frmsub).submit();
}
}
现在症状如下:
当点击保存的时候(由于项目的特殊性,数据都是保存在对应目录下的configurator_XX.properties文件中而非保存在数据库中),每当在form中上传本地图片文件后,点击【save】后保存结果是正确的,但是当我点击【clean logo】按钮后再点击【save】发现数据文件configurator_XX.properties会被覆盖掉,仅仅只是保存当前的几个结果,但是这个时候如果进行debug的话,这个现象是不会重现,但当在非debug时,又会出现这个问题,分析过后台的业务逻辑并没有出现错误。
后来经过高人指点由于jQuery Ajax是异步执行的,这个时候由于提交的两个form如果不是在同步执行的情况下就会出现以上现象,因此,在上面的代码处添加一行:(用红色标记):
var options = {
//target: "#errormessage",
async:false,
success: showResponse, // post-submit callback
error: function(XMLHttpRequest, textStatus, errorThrown) {
location.href = "../../error/c500Error.jsp?exception=clear";
}
};
至此,该错误宣告结束O(∩_∩)O~
- 大小: 41.3 KB
分享到:
相关推荐
jquery ajax 同步异步的执行 return值不能取得的解决方案,需要的朋友可以参考下。
详细介绍了AJAX的通信过程 同步或者异步 值得一看
通过ajax向后台发送和接收数据时,常常会出现同步异步问题。这篇文章给大家介绍Ajax同步和异步问题浅析,需要的朋友参考下
2 同步:MyAjaxs " 要调用的方法页面 方法" 参数 function d {alert d["d"] ;} ;">调用方法:1 将下载好的Ajax js文件引用到页面 代码如下:<script src " js MyAjax js" type &...
本文为大家介绍下ajax同步异步的简单实现,感兴趣的朋友可以参考下
最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。 而异步则这个AJAX代码...
下面小编就为大家带来一篇浅谈js的ajax的异步和同步请求的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
原生ajax代码实现异步提交,用传统的ajax实现异步提交判断用户名是否存在,详细和完整的步骤,可运行
对新手学ajax 有帮助。希望大家能够喜欢和利用。
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现
javascript发送ajax请求,获取返回值res,async 同步/异步 var res = sendRequest({ url : "1.php", //necessary method : "post", params : { param1 : "123", param2 : "234" }, async : false });
jquery ajax 同步异步的执行示例代码,需要的朋友可以参考下。
用法 XMLHttpRequest的用法 ajax同步和异步的区别
ajax 同步请求和异步请求的差异分析,需要的朋友可以参考下。
async在jquery ajax中是一个同步参数。本篇文章给大家介绍jq中的ajax async同步和异步,小伙伴跟着小编一起学习吧
C#JS AJAX部分代码 用于前后台的数据同步
添加async:false.即修改为同步了,什么意思?按同事解释就是,这是等这个ajax有了返回值后才会执行下面的js一语道破天机,怪不得以前很多ajax调用里面的赋值都不起作用
ajax ,异步或同步请求,控制action返回的值,并处理
把Ajax技术应用到Web地图中,能够实现浏览器与地图服务器之间的异步交互,与采用传统同步方式的Web地图应用相比,具有用户界面反应灵敏,没有页面刷新带来的闪烁。本文研究了基于Ajax的异步Web地图实现技术,并在ASP...