java Spring MVC响应头:当我返回一个新的ResponseEntity时,为什么在param HttpServletResponse上设置头会起作用?
我有一个简单的片段:
@RequestMapping(value = "/consent-history", method = RequestMethod.OPTIONS)
public ResponseEntity optionsHistory(HttpServletResponse response) {
//response.setHeader("Allow", "GET,OPTIONS");
//return new ResponseEntity(HttpStatus.OK); // this works too, strangely
return ResponseEntity.status(200).header("Allow", "GET,OPTIONS").body(""); // this apparently works
}
我知道返回一个新的ResponseEntity是有效的,因为我设置了标题。但当我在参数response
上设置头时,它也起作用:我在测试中看到头“Allow”设置。为什么
# 1 楼答案
因为当你回复回复时。您已经创建了一个新的响应,而不是HttpServletResponse。因此,您在该响应上设置了标题,但返回了另一个标题。这就是你的头球没用的原因