今天做一个功能,当用户点击查询时,先验证用户查询次数是否足够,如果够得话使用form表单方式提交,跳转新的界面,为什么用form表单,因为数据敏感,不适合在游览器地址上显示出来,防止用户随意修改而导致数据问题。
当axaj发送请求—>验证用户查询次数够不够,够得话在ajax方法内进行form提交,火狐和谷歌游览器默认直接拦截单出窗口,IE没有拦截,原因是游览器会把这种不是用户点击事件直接跳转得连接当成广告拦截,(触发click事件先进行得ajax请求,在ajax又重新链接跳转,不属于用户直接事件跳转),所以我们需要在axaj请求后在跳转界面。
会被拦截得写法:
$("#seach").click(function(){
$.post(contextPath+"/areaLabitem/validateCount.do",param,function(data){
if(data.statu == "error"){
jAlert(data.result, function(r) {
return;
});
}else{
$("#areaLabitemForm").submit(); //放在ajax里面
}
$("#areaLabitemForm").submit();
});
不会被拦截
特别注意,ajax需要改成同步请求,不然会出问题。:
$("#seach").click(function(){
$.ajax({
type: "post",
url: contextPath+"/areaLabitem/validateCount.do",
cache:false,
async:false, //改成同步请求
dataType: 'json',
data:param,
success: function(d){
if(d.statu == "error"){
jAlert(d.result, function(r) {
return;
});
return;
}else{
flag = true;
}
} });
if(flag == true){
$("#areaDetail").submit();
}
}