2015-01-05 11 views
5

Server Side: Spring FrameworkXuân ResponseEntity & AJAX lỗi chức năng: không thể truy cập nội dung phản ứng cơ thể

Tôi có một Xuân điều khiển rằng có một phương pháp mà trả về kiểu ResponseEntity<String>.

Nếu có yêu cầu hoàn toàn tốt tôi trở lại như sau:

return new ResponseEntity<>(OK_MESSAGE, new HttpHeaders(), HttpStatus.OK); 

Nhưng nếu có bất kỳ vấn đề trong quá trình thực hoặc ngoại lệ bắt, tôi quay trở lại:

return new ResponseEntity<>(ERROR_MESSAGE, new HttpHeaders(), HttpStatus.BAD_REQUEST); 

đâu ERROR_MESSAGE chứa một chuỗi tùy biến cho mỗi loại ngoại lệ bị bắt.

KHÁCH HÀNG PHỤ: AJAX gọi

Khi đó phương thức POST được gọi và trả về HttpStatus.OK, AJAX

success: function (data, message, xhr) 

được gọi và tôi easilly thể truy cập vào Chuỗi OK_MESSAGE bằng cách truy cập data .

Các vấn đề nói rằng phương thức POST trả HttpStatus.BAD_REQUEST, AJAX

error: function (xhr, status, errMsg) 

được gọi nhưng tôi không thể truy cập vào Chuỗi ERROR_MESSAGE gửi bởi máy chủ, mà tôi cần phải chứng minh cho người sử dụng.

Mọi đề xuất?

+0

Hi @charliebrownie có thể bạn vui lòng đăng mã của cả ajax và bộ điều khiển? – liorsolomon

+0

Xin chào! Phương thức Spring Controller của tôi trả về chính xác điều đó, một 'ResponseEntity ', trong đó String là biến 'ERROR_MESSAGE'. Sự khác biệt duy nhất trong cuộc gọi AJAX là khi tôi nhận được một phản hồi OK, tôi có thể truy cập vào chuỗi đó trong biến 'data' đó. Có cách nào để truy cập nó từ hàm 'error' không? – charliebrownie

+0

Nếu bạn cần mã tôi có thể làm một * chỉnh sửa * hoặc một cái gì đó, nhưng tôi tự hỏi nếu có một cách để truy cập vào chuỗi tôi đang đi bên trong 'ResponseEntity' từ' lỗi' chức năng mà tôi đang thiếu ... vì có một cách từ hàm AJAX 'success'. – charliebrownie

Trả lời

4

Trên bộ điều khiển tôi trả lại ResponseEntity theo cách sau:

return new ResponseEntity<>("Enter the full url", new HttpHeaders(), HttpStatus.BAD_REQUEST); 

Trong JS tôi sẽ kiểm tra chuỗi lỗi phản ứng theo cách sau:

$.ajax({ 
      url: 'http://localhost:8080/link', 
      data: 'url=/www.stackoverflow.om', 
      type: 'GET', 

      contentType: 'application/json; charset=utf-8', 
      success: function (data, textStatus, xhr) { 
       alert(xhr.status); 
      }, 
      error: function (data, textStatus, xhr) { 
       alert(data.responseText); 
      } 
     }) 
Các vấn đề liên quan