org.apache.catalina.filters.CorsFilter 403 Forbidden


增加了CorsFilter后,有些浏览器会报403错误。原因是这些浏览器在发送某些POST请求时(一些没有参数的POST请求)没有带Content-Type

在 checkRequestType 函数中

else if ("POST".equals(method)) { String mediaType = getMediaType(request.getContentType()); if (mediaType != null) { if (SIMPLE_HTTP_REQUEST_CONTENT_TYPE_VALUES .contains(mediaType)) { requestType = CORSRequestType.SIMPLE; } else { requestType = CORSRequestType.ACTUAL; } } /* 没有Content类型时(mediaType == NULL) 返回的是 CORSRequestType.INVALID_CORS 后面CorsFilter的处理是给予一个403*/ }

解决方式

else if ("POST".equals(method)) { String mediaType = getMediaType(request.getContentType()); if( null == mediaType ){ requestType = CORSRequestType.SIMPLE }else{ if (SIMPLE_HTTP_REQUEST_CONTENT_TYPE_VALUES .contains(mediaType)) { requestType = CORSRequestType.SIMPLE; } else { requestType = CORSRequestType.ACTUAL; } } }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM