更長的標題是:嘗試使用Ajax調用到控制器上插入搜索結果到錯誤的表結果
「試圖使用AJAX調用控制器插入搜索結果到一個表結果而留在同一個頁面的結果爲「405」或「直接自我參照導致循環......」錯誤」
我試圖同時保持找到一種方法來填充搜索結果的表錯誤在同一頁上使用ajax調用控制器。
ajaxCall->控制器 - >服務(完成搜索) - >控制器(來自搜索結果) - >回阿賈克斯與響應
我有被觸發的形式提交防止違約後一個Ajax調用:
function ajaxGetSearchResults(link, form) {
var myList=[];
var jqxhr = $.ajax({
"url" : link,
"data" : form.serialize(),
"dataType" : 'json',
"type" : "POST",
"headers": {
'Content-Type': 'application/json'
},
"success" : function (response){
console.log("Ajax success");
fillTable(response);
console.log("Search results added to table: "+response);
},
"complete": function(response){
console.log("Ajax call to controller completed");
},
"error": function(){
console.log("Ajax call to controller triggered error");
}
});
}
在控制器我收到Ajax請求這樣:
@RequestMapping(value = "/ajaxScriptSearch", method = RequestMethod.POST)
public @ResponseBody List<ResultViewDto> processAJAXRequestSearch(@RequestParam String a1,
@RequestParam String a2, @RequestParam String a3, @RequestParam String a4) {
SearchDto searchDto = new SearchDto();
searchDto.setAttribute1(a1);
searchDto.setAttribute2(a2);
searchDto.setAttribute3(a3);
searchDto.setAttribute4(a4);
try {
/*
calling Service, performing search using searchDto as a parameter, mapping result to resultViewDtos
*/
} catch(Exception e){
/* do something */
}
return resultViewDtos;
}
到服務的調用是全成。 resultViewDtos的一個例子是:[viewDto1,viewDto2,viewDto3]其中每個視圖dto包含一些需要插入到表中的字符串值。
我似乎得到一個「HTTP狀態405 - 請求方法'GET'不支持」的錯誤,但我的ajax調用是「type:POST」。
當我嘗試使用GET insted時,我得到一個「直接自引用導致循環(通過引用鏈...)」的錯誤。
我使用傑克遜核心2.6.2,傑克遜數據綁定2.6.2,彈簧4,休眠4.
我會appericiate任何幫助我能......
添加整個彈簧控制器代碼 –