【发布时间】:2014-02-12 14:19:26
【问题描述】:
在 extjs4 控制器中我调用
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);
}
});
我的“/bookstore/api/books/add”的spring 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;
}
我从 '/bookstore/api/books/add' 得到 2 个 json 响应变体:
- 错误 json : {"errors":"asdasdasd","success":false}
- 成功 json {"success":true}
而且服务器确实返回了这个值
但如果我尝试获取 response.responseText,我会得到未定义的值。如何在我的失败函数中获取“错误”值?
【问题讨论】: