java使用webuploader實(shí)現(xiàn)跨域上傳詳解
前言
項(xiàng)目中使用webuploader進(jìn)行文件上傳,需要用到跨域,查看webuploader的issues發(fā)現(xiàn)是支持上傳的,但是他們寫的回復(fù)都是不清不白的,有點(diǎn)迷糊;想了半天才知道咋回事,也可能是我比較笨,再次記錄下java中詳細(xì)的處理。
webuploader進(jìn)行上傳,會(huì)執(zhí)行2個(gè)請求;一個(gè)option請求,一個(gè)post(根據(jù)你的webuploader的配置method 值決定),需要在option請求中對響應(yīng)頭進(jìn)行處理,post響應(yīng)頭也進(jìn)行響應(yīng)的處理。
以servlet為例:
@WebServlet(description = "文件上傳",value = {"/file/upload"})
public class FileUpload extends HttpServlet {
public FileUpload() {
super();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Methods", "*");
resp.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");
resp.setContentType("application/json");
resp.setCharacterEncoding("utf-8");
//文件上傳邏輯
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Access-Control-Allow-Credentials", "false");
resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Methods", "*");
resp.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");
resp.setContentType("application/json");
resp.setCharacterEncoding("utf-8");
super.doOptions(req, resp);
}
再次測試跨域上傳,正常
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
SpringBoot?docker項(xiàng)目部署實(shí)戰(zhàn)
本文主要介紹了SpringBoot?docker項(xiàng)目部署實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Java多線程高并發(fā)中的Fork/Join框架機(jī)制詳解
本文主要介紹了 Java 多線程高并發(fā)中的 Fork/Join 框架的基本原理和其使用的工作竊取算法(work-stealing)、設(shè)計(jì)方式和部分實(shí)現(xiàn)源碼,感興趣的朋友跟隨小編一起看看吧2021-11-11
Spring Boot集成Spring Cloud Security進(jìn)行安全增強(qiáng)的方法
Spring Cloud Security是Spring Security的擴(kuò)展,它提供了對Spring Cloud體系中的服務(wù)認(rèn)證和授權(quán)的支持,包括OAuth2、JWT等,這篇文章主要介紹了Spring Boot集成Spring Cloud Security進(jìn)行安全增強(qiáng),需要的朋友可以參考下2024-11-11
java結(jié)合WebSphere MQ實(shí)現(xiàn)接收隊(duì)列文件功能
WebSphereMQ,也稱MQSeries,以一致的、可靠的和易于管理的方式來連接應(yīng)用程序,并為跨部門、企業(yè)范圍的集成提供了可靠的基礎(chǔ)。通過為重要的消息和事務(wù)提供可靠的、一次且僅一次的傳遞,MQ可以處理復(fù)雜的通信協(xié)議,并動(dòng)態(tài)地將消息傳遞工作負(fù)載分配給可用的資源。2015-10-10
eclipse里沒有“Dynamic Web Project“這個(gè)選項(xiàng)的問題解決
本文主要介紹了eclipse里沒有“Dynamic Web Project“這個(gè)選項(xiàng)的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

