正确写法:
Jquery代码:
(因为需要操作其他ajax添加的元素所以不能直接用Jquery获取对象,这里使用如下的javascript代码获取对象并操作)
// ajax搜索方法
function ajaxSearch(argument){
$.ajax({
url:"doSearch.do",
type:"post",
data:{"choose":arguments[0],"fq":arguments[1],"removeFq":arguments[2]},
dataType:"json",
...
});
}
// 第一次调用,用到前两个参数
$(document).on("click",".facet_a",function(){
var $fq=$(this).attr("value");
ajaxSearch('1',$fq);
})
//第二次调用,用到第一个和第三个参数
$(document).on('click','.facet_delete',function(){
var $removeFq=$(this).prev().attr("value");
ajaxSearch('1',undefined,$removeFq);
})Java代码:
System.out.println("rq:"+request.getParameter("rq"));
//使用第二次的调用时,可以做如下判断,做后续操作
if(request.getParameter("rq")!=null){
...
}控制台:
rq:null错误写法:(最开始写法)
Jqurey:
ajaxSearch('1',' ',$removeFq)ajaxSearch('1',null,$removeFq)Java:
System.out.println("rq:"+request.getParameter("rq"));
使用第二次的调用时
if(request.getParameter("rq")!=null){
...
}控制台
rq: 虽然在判断的时候可以通过,但是在后续操作会有未知的错误,比如数组越界,但是我们的初衷是给他赋空值然后通过判断不走if里的语句,与我们的想法相悖,所以,用undefined在js中通过ajax传给后台,后台获取的为null。
本文详细解释了在JavaScript中如何正确地使用undefined和null来传递参数,并对比了这两种做法在前后端交互时的区别及可能产生的影响。
344

被折叠的 条评论
为什么被折叠?



