過濾器解決檔案上傳下載跨域問題
@Component
@ConfigurationProperties(prefix = "keyconfig")
public class CorsFilter implements Filter {
//上傳路徑
private String devHeader;
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
devHeader=devHeader.replace("'", "");
response.setHeader("Access-Control-Allow-Credentials","true");
response.setHeader("Access-Control-Allow-Origin",devHeader);
//response.setHeader("Access-Control-Allow-Headers","Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
response.setHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Headers, Authorization");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {}
public void destroy() {}
public String getDevHeader() {
return devHeader;
}
public void setDevHeader(String devHeader) {
this.devHeader = devHeader;
}
}
其中一下程式碼用於從yml獲取值,注意要有get/set
(在aplication.yml中有keyconfig.devHeader=‘*’
)
@ConfigurationProperties(prefix = "keyconfig")
private String devHeader;
public String getDevHeader() {
return devHeader;
}
public void setDevHeader(String devHeader) {
this.devHeader = devHeader;
}
注意:如果專案中有JavaBean 來專門對映配置,在過濾器中@Autowired
是獲取不到的
因為web應用啟動的順序是:listener->filter->servlet
如果希望可以用專門對映配置的JavaBean 來獲取yml中的值而不希望在過濾器中配置,可以通過在init方法中使用filterConfig引數或在dofilter方法中使用request引數來獲取
相關文章
- git上傳過濾檔案Git
- 10.13面試:什麼是跨域?如何解決跨域問題+springMVC如何處理檔案上傳和下載+ssm整合思路 (待完善)面試跨域SpringMVCSSM
- Django專案解決跨域問題Django跨域
- 解決跨域問題跨域
- 搞懂:前端跨域問題JS解決跨域問題VUE代理解決跨域問題原理前端跨域JSVue
- 大檔案傳輸解決方案:分片上傳 / 下載限速
- 跨域CORS圖片上傳問題跨域CORS
- CROS 解決跨域問題ROS跨域
- cors解決跨域問題CORS跨域
- WebSocket跨域問題解決Web跨域
- Flask解決跨域問題Flask跨域
- Luffy - 解決跨域問題跨域
- 跨域問題,解決之道跨域
- Java解決跨域問題Java跨域
- 解決CORS跨域不能傳遞cookies的問題CORS跨域Cookie
- 關於檔案上傳下載的編碼問題
- html匯入導航欄本地檔案解決跨域問題HTML跨域
- Nginx 配置 Vue 專案解決跨域問題NginxVue跨域
- 檔案上傳下載
- Nginx解決前端跨域問題 CORS跨域配置Nginx前端跨域CORS
- 深入跨域問題(2) - 利用 CORS 解決跨域跨域CORS
- 【過濾器】web中過濾器的使用與亂碼問題解決過濾器Web
- springMVC(二)——處理返回值、常用註解、檔案上傳下載、異常處理、過濾器、攔截器SpringMVC過濾器
- 輕鬆解決跨域問題跨域
- 跨域問題及解決方案跨域
- JAVA | Java 解決跨域問題Java跨域
- 跨域問題解決辦法跨域
- PHPAjax跨域問題解決方案PHP跨域
- thinkphp 5 跨域問題解決PHP跨域
- SignalR跨域問題解決SignalR跨域
- 【JavaScript】通過封裝自己的JSONP解決瀏覽器的跨域問題(Ajax跨域)JavaScript封裝JSON瀏覽器跨域
- vue-cli下跨域 問題的解決方法Vue跨域
- 一文解決瀏覽器跨域問題瀏覽器跨域
- tomcat 7伺服器跨域問題解決Tomcat伺服器跨域
- 微服務閘道器 gateway 跨域問題解決微服務Gateway跨域
- 伺服器端解決JS跨域呼叫問題伺服器JS跨域
- 深入跨域問題(3) – 利用 JSONP 解決跨域跨域JSON
- 深入跨域問題(3) - 利用 JSONP 解決跨域跨域JSON