javascript呼叫多個引數的方法,引數在ajax中傳送給後臺並獲取,某個為空處理
阿新 • • 發佈:2019-02-19
正確寫法:
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。