javascript调用多个参数的方法,参数在ajax中传送给后台并获取,某个为空处理

正确写法

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。






猜你喜欢

转载自blog.csdn.net/henrymrz/article/details/79706166
今日推荐