在我的REST API中,每当用户尝试访问非现有资源时,我都会返回404。
但是,Firefox不会显示“404错误”页面,但会抱怨字符编码。
这是我的控制器代码:
@RequestMapping("/countries/{countryId}")
public ResponseEntity<?> country(@PathVariable Integer countryId) {
return countriesService.getCountry(countryId);
}
从服务实体调用此方法:
public ResponseEntity<?> getCountry(Integer countryId) {
Country country = countryDAO.findById(countryId);
if (country == null)
return ResponseEntity.notFound().build();
return ResponseEntity.ok(new DetailedCountryJson(country));
}
DetailedCountryJson是一个简单的json对象。所以当我访问
时localhost:8080/countries/1
我得到了与这个国家相关的json,但是当我尝试使用不在数据库中的id时,我得到了
它说
未声明纯文本文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本进行渲染。需要在传输协议中声明文件的字符编码,或者文件需要使用字节顺序标记作为编码签名。