1. 程式人生 > >SSM整合html使用Ajax時,success獲取不到controller類的返回值的問題解決。

SSM整合html使用Ajax時,success獲取不到controller類的返回值的問題解決。

使用ajax對資料庫的執行刪除,資料可以正常刪除,就是controller方法可以執行,但是Ajax的success卻接收不到controller類刪除方法的返回值。卻一直執行Ajax的error。

我的ajax是這樣寫的:

        $.ajax({
                type: 'post',
                async: false,
                url: '/user/deleteUsersForXX_insert.do',
                success: function (data) {
                    alert(data);
                },
                error:function (data) {
                    alert("錯誤!");
                }
            }
        );

 controller是這樣寫的:(不成功的原因是我這個方法沒有使用 @ResponseBody   註解)


	@RequestMapping("/deleteUsersForXX_insert")
	public String deleteUsersForXX_insert(){

		List<User> lists=new ArrayList<>();

		for (int i = 6; i <7 ; i++) {
			User user=new User();
			user.setId(i);
			user.setPassWord("12345"+i);
			user.setUserName("123"+i);

			lists.add(user);
		}

		int i=userService.deleteUsersForXX_insert(lists);

		System.out.println("插入成功條數:"+i);

		return "刪除成功條數:"+i;

	}

 

  • 不成功原因有:

1、controller類裡面的方法沒有使用 @ResponseBody   註解       (一般是這個原因);

2、ajax的非同步處理問題(具體參考這個:ajax請求後臺,有時收不到返回值的解決辦法);

 


@responseBody註解的作用是將controller的方法返回的物件通過適當的轉換器轉換為指定的格式之後,寫入到response物件的body區,通常用來返回JSON資料或者是XML資料,需要注意的呢,在使用此註解之後不會再走試圖處理器,而是直接將資料寫入到輸入流中,他的效果等同於通過response物件輸出指定格式的資料。