2014-02-12 1 views
0

은 내가 '나는에서 얻을Extjs4/스프링 MVC와 extjs4 컨트롤러에서 response.responseText

form.submit({ 
       url: '/bookstore/api/books/add', 
       waitMsg: 'Uploading your file...', 
       success: this.onAddBookSuccess, 
       failure: function(response, opts){ 
        var data = Ext.decode(response.responseText); 
        Ext.MessageBox.alert('Error', 'Some problem occurred' + data); 
       } 
      }); 

'/ 서점/API를/책/추가 '에 대한 나의 스프링 MVC 컨트롤러 코드

@RequestMapping(value = "/api/books/add", method = RequestMethod.POST) 
public 
@ResponseBody 
Map<String, ? extends Object> addUser(BookUploadBean bean, BindingResult result) { 

Map<String, Object> data = new HashMap<String, Object>(); 

if (bean.getTitle().compareTo("1") == 0) { 
    data.put("success", Boolean.FALSE); 
    data.put("errors", "asdasdasd"); 
    return data; 
} 

Book book = new Book(); 
book.setTitle(bean.getTitle()); 
book.setAuthor(bean.getAuthor()); 
book.setYear(bean.getYear()); 
book.setPrice(bean.getPrice()); 
book.setDescription(bean.getDescription()); 
book = userRepository.save(book); 

data.put("success", Boolean.TRUE); 
return data; 
} 

전화/서점/JSON 응답의 2 개 변종 API/책/추가 '

  1. 오류 JSON : { "오류": "asdasdasd", "성공"거짓}
  2. 성공 JSON { "성공": TRUE}
    그리고 서버가 정말 반환이
    enter image description here

값하지만 response.responseText를 얻을하려고하면, 내가 정의되지 않은 값을 얻는다. 내 고장 기능에서 "오류"값을 어떻게 얻을 수 있습니까?

답변

1

양식을 제출할 때 콜백의 두 번째 매개 변수의 "결과"속성으로 여전히 응답되는 응답을받습니다.

form.submit({ 
    url: '/bookstore/api/books/add', 
    waitMsg: 'Uploading your file...', 
    success: this.onAddBookSuccess, 
    failure: function(form, action){ 
     Ext.MessageBox.alert('Error', 'Some problem occurred' + action.result.errors); 
    } 
}); 

희망이 도움 :)

: 귀하의 예제에서 그래서