当rest控制器返回null body时,ajax转到error方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当rest控制器返回null body时,ajax转到error方法相关的知识,希望对你有一定的参考价值。
环境:春季启动2.0,杰克逊序列化
我的rest控制器方法不会返回任何正文,就像ResponseEntity.ok().build()
一样,但是ajax不会转到成功方法,它会转到错误方法,并且错误显示“JSON输入的意外结束”
我试过这个:
1.将属性添加到application.properties:spring.jackson.default-property-inclusion: NON_NULL
中,它仍然转到错误方法;
2.像这个ResponseEntity.ok("{}")
更新返回结果,它会好的;
@PostMapping(value = "/import")
public ResponseEntity<Void> importRecipients(@ModelAttribute UserRecipientDto userRecipientDto,
@CurrentUser @ApiIgnore User user,
@RequestParam ImportType importType,
@RequestParam String name,
@RequestParam List<Long> ids) {
Collection<MailRecipient> count = this.service.getRecipients(userRecipientDto, importType, ids);
UserMailRecipientGroup userMailRecipientGroup = new UserMailRecipientGroup(name, USER_RECIPIENT, count, user);
userMailRecipientGroupService.saveMailRecipientGroup(userMailRecipientGroup);
return ResponseEntity.ok().build();
}
application.yml:
spring:
jackson:
serialization:
write-dates-as-timestamps: true
write_dates_with_zone_id: true
time-zone: GMT
default-property-inclusion: NON_NULL
ajax代码块:
url: url,
type: type,
contentType: "application/json;charset=utf-8",
headers: {},
data: param,
async: true,
dataType: "json",
success: function success(data) {
cb(data);
},
error: function error(request, status_code, text_error) {}
我期待这个:
当我的rest方法返回ok().build()
时,ajax会转到成功方法。
我猜ajax转换结果到json发生了一些错误,可能是一些春季引导属性会做到这一点,但我还没有找到。
谢谢!!
不清楚控制器正在扩展哪个类以及ok()方法的导入。
也许尝试使用ResponseEntity
ResponseEntity.ok().build()
从返回ok()。build()返回Http Status 200 OK状态。不是吗?
你究竟要归还给客户什么?
如果是某些响应,您可以返回ResponseEntity.ok()。build()或
return Response.ok()。entity(someEntity).build();
我看到返回类型是代码中的ResponseEntity。
请详细说明问题。
编辑:
代码看起来像
@PostMapping(value =“/ import”)
public ResponseEntity<String> importRecipients(@ModelAttribute UserRecipientDto userRecipientDto,
@CurrentUser @ApiIgnore User user, @RequestParam ImportType
importType, @RequestParam String name,
@RequestParam List ids) {
Collection count = this.service.getRecipients(userRecipientDto, importType, ids);
UserMailRecipientGroup userMailRecipientGroup = new UserMailRecipientGroup(name, USER_RECIPIENT, count, user);
userMailRecipientGroupService.saveMailRecipientGroup(userMailRecipientGroup);
return new ResponseEntity(HttpStatus.OK);
}
以上是关于当rest控制器返回null body时,ajax转到error方法的主要内容,如果未能解决你的问题,请参考以下文章
使用 jquery ajax 发布时,Httppostedfilebase 始终返回 null
当Kendo网格在PopUp中时,DatasourceRequest始终返回null
通过 AJAX 访问从 Django Rest Framework 返回的数组中的项目时获取“未定义”