据我所知道的是有三种方式:Tomcat 配置、拦截器设置响应头和使用 Spring MVC 4.2+。
设置 Tomcat 这种方式就是引用别人封装好的两个 jar 包,配置一下web.xml
就行了。我也并不推荐,这里放两个我在网上找到的配置相关文章,感兴趣可以看看。
- CORS Filter Installation
- tomcat下CORS(跨域资源共享) 的配置
拦截器设置响应头 这种方式原理就是利用拦截器在方法执行前,我们增加请求的响应头,用来支持跨域请求。这种方案是可行的,大部分都是采用这种方案。我当时也是打算采用这种 方案,直到我发现原来 Spring 框架已经支持了 CORS 之后,就果断采用了 Spring 框架的内置的方案,其实原理也是一样的。
直接配置即可:
<!-- API 接口跨域配置 -->
<mvc:cors> <mvc:mapping path="/api/**"allowed-origins="*"allowed-methods="POST, GET, OPTIONS, DELETE, PUT"allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"allow-credentials="true" />
</mvc:cors>
当然你也可以在Controller上使用 @CrossOrigin
注解