這已經是很普遍的操作方式了
就不特別說明了不過
也一篇文章可以提供給大家了解
https://www.shubo.io/what-is-cors/
這邊就直接上程式了
作法有蠻多種的
有些會根據每個API開發時就直接寫在該API上
我偏好使用清單式方式處理,前一篇提到的有白名單進行篩選進來後的API
在進入到CORS filter時就會幫這個API加上可以跨域的行為
其他方式可參考
https://www.tpisoftware.com/tpu/articleDetails/1415
CORSFilter
@Component
public class CORSFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PATCH");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, Authorization, cache-control");
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}
單單只看這個filter來說可能會覺得危險吧,把每個API的Origin都給予允許,且每個ResfulAPI都沒有予以限制
這不是一個給新手的一個教學過程,也寫的不是很完整
希望大家多多包涵囉~
主要是給自己的一個紀錄,也分享給有需要的夥伴
這是一個心血來潮,產生的文章
若有喜歡或交流的部分都歡迎在下方留言,多多關照。