最近,发现一个同事写了一段代码(在import.jsp)页面写的代码如下:
<%
String action=request.getParameter("action");
%>
<%
pagemenustr += "{E,"+ "导入" +",javascript:onIMP();}";
%>
<div id="pagemenubar" style="z-index:100;"></div>
<%@ include file="/vbase/pagemenu.jsp"%>
var i=0;
function onIMP(){
i++;
jQuery.get("import.jsp",{action:"imp",i:"i"},function(data){
});
if(j==0){
alert("导入中,请等待!");
return;
}
i=0;
alert("导入中,请等待!");
checkstatus();
}
}
这里pagemenustr是用于生成按钮的代码。
每次系统重启后,第一次运行这个方法,能取出action的值为imp,而后面多次点击按钮后,action取值却变成null。
而我把代码改成:
function onIMP(){
i++;
jQuery.post("import.jsp",{action:"imp",i:"i"},function(data){
});
if(j==0){
alert("导入中,请等待!");
return;
}
i=0;
alert("导入中,请等待!");
checkstatus();
}
将get方法改成post方法运行后,不管点击多少次按钮,action都能正确取值imp。
这里有个小细节:
就是对使用i变量的问题导致。
原因找到了请看我另一篇关于get与post的区别。