1. 程式人生 > >javascript呼叫多個引數的方法,引數在ajax中傳送給後臺並獲取,某個為空處理

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。