Spring Boot實(shí)現(xiàn)跨域訪問(wèn)實(shí)現(xiàn)代碼
當(dāng)前使用spring版本是4.3.9
import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Component public class CorsFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; response.setHeader("Access-Control-Allow-Origin", request.getHeader("origin")); // response.setHeader("Access-Control-Allow-Origin", "*");//允許跨域訪問(wèn)的域 response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");//允許使用的請(qǐng)求方法,以逗號(hào)隔開(kāi) response.setHeader("Access-Control-Max-Age", "3600");// 緩存此次請(qǐng)求的秒數(shù) //允許使用的請(qǐng)求方法,以逗號(hào)隔開(kāi) response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Cache-Control,Pragma,Content-Type,Token"); response.setHeader("Access-Control-Allow-Credentials","true");//是否允許請(qǐng)求帶有驗(yàn)證信息 filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }
PS: spring boot 服務(wù)器端設(shè)置允許跨域訪問(wèn)
import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * * 跨域過(guò)濾器 * @author meng * @version * @since 2016年6月19日 */ @Component public class CorsFilter implements Filter { final static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(CorsFilter.class); public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with"); System.out.println("*********************************過(guò)濾器被使用**************************"); chain.doFilter(req, res); } public void init(FilterConfig filterConfig) {} public void destroy() {} }
2017-04-13更新:
第二種方法,在Appplication.java添加:
private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); return corsConfiguration; } /** * 跨域過(guò)濾器 * @return */ @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", buildConfig()); // 4 return new CorsFilter(source); }
總結(jié)
以上所述是小編給大家介紹的Spring Boot實(shí)現(xiàn)跨域訪問(wèn)實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- SpringBoot解決ajax跨域問(wèn)題的方法
- Spring boot 總結(jié)之跨域處理cors的方法
- vue+springboot前后端分離實(shí)現(xiàn)單點(diǎn)登錄跨域問(wèn)題解決方法
- Spring boot跨域設(shè)置實(shí)例詳解
- 淺談spring-boot 允許接口跨域并實(shí)現(xiàn)攔截(CORS)
- Spring Boot Web應(yīng)用開(kāi)發(fā) CORS 跨域請(qǐng)求支持
- spring boot配合前端實(shí)現(xiàn)跨域請(qǐng)求訪問(wèn)
- Java Spring boot 2.0 跨域問(wèn)題的解決
相關(guān)文章
java?WebSocket?服務(wù)端實(shí)現(xiàn)代碼
WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信——允許服務(wù)器主動(dòng)發(fā)送信息給客戶端,這篇文章主要介紹了java?WebSocket?服務(wù)端代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02SpringBoot項(xiàng)目中改變web服務(wù)的路徑的兩種方案
這篇文章主要介紹了SpringBoot項(xiàng)目中改變web服務(wù)的路徑的兩種方案,通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-08-08一次由Lombok的@AllArgsConstructor注解引發(fā)的錯(cuò)誤及解決
這篇文章主要介紹了一次由Lombok的@AllArgsConstructor注解引發(fā)的錯(cuò)誤及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09springmvc fastjson 反序列化時(shí)間格式化方法(推薦)
下面小編就為大家?guī)?lái)一篇springmvc fastjson 反序列化時(shí)間格式化方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04Java String字符串和Unicode字符相互轉(zhuǎn)換代碼詳解
這篇文章主要介紹了Java String字符串和Unicode字符相互轉(zhuǎn)換代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Java的關(guān)鍵字與標(biāo)識(shí)符小結(jié)
這篇文章主要介紹了Java的關(guān)鍵字與標(biāo)識(shí)符,總結(jié)整理了Java各種常見(jiàn)的關(guān)鍵字與標(biāo)識(shí)符功能、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04面試必問(wèn)項(xiàng)之Set實(shí)現(xiàn)類:TreeSet
這篇文章主要介紹了Java TreeSet類的簡(jiǎn)單理解和使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-07-07IDEA:Error running,Command line is too&n
這篇文章主要介紹了IDEA:Error running,Command line is too long.解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07