我正在使用Spring Data REST构建RESTful API。到目前为止,我的HTML GUI是从同一Tomcat服务器提供的,对于跨域请求没有任何问题。
现在我想要从另一台服务器提供静态文件。这意味着API位于另一个域/端口上。浏览器将发送OPTIONS请求以从服务器获取Access-Control头信息。不幸的是,Spring Data REST不能处理这些OPTIONS请求,甚至返回HTTP 500错误。
我尝试创建一个自定义控制器来处理所有OPTIONS请求。
现在我想要从另一台服务器提供静态文件。这意味着API位于另一个域/端口上。浏览器将发送OPTIONS请求以从服务器获取Access-Control头信息。不幸的是,Spring Data REST不能处理这些OPTIONS请求,甚至返回HTTP 500错误。
我尝试创建一个自定义控制器来处理所有OPTIONS请求。
@Controller
@RequestMapping(value = "/**", method = RequestMethod.OPTIONS)
public class OptionsController {
@RequestMapping
public ResponseEntity options() {
return new ResponseEntity<Void>(HttpStatus.OK);
}
}
这适用于OPTIONS请求,但随后所有其他请求(如GET)都无法工作。
可以通过dispatchOptionsRequest调度器servlet参数打开OPTIONS请求。