這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在java中解決請(qǐng)求跨域,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái),先為鳳慶等服務(wù)建站,鳳慶等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為鳳慶企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
1.使用攔截器,實(shí)現(xiàn)javax.servlet.Filter接口
import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletResponse; @WebFilter(filterName="CorsFilter" , urlPatterns="*.do") public class CorsFilter implements Filter{ @Override public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) resp; response.setHeader("Access-Control-Allow-Origin", "*"); //解決跨域訪問(wèn)報(bào)錯(cuò) response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); //設(shè)置過(guò)期時(shí)間 response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization"); response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1. response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0"); chain.doFilter(req, resp); } @Override public void init(FilterConfig arg0) throws ServletException { } }
如果想用xml的形式配置攔截器,可以刪除@WebFilter(filterName="CorsFilter" , urlPatterns="*.do"),然后在web.xml中添加下面的配置
CorsFilter com.huaming.filter.CorsFilter CorsFilter *.do
2.使用注解的形式,配置org.springframework.web.filter.CorsFilter,通常springboot項(xiàng)目多數(shù)使用這種方式
import org.springframework.web.filter.CorsFilter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; /** * 解決跨域問(wèn)題springboot所需配置 */ @Configuration public class CORSConfiguration { @Bean public CorsFilter corsFilter() { //1.添加CORS配置信息 CorsConfiguration config = new CorsConfiguration(); //1) 允許的域,不要寫(xiě)*,否則cookie就無(wú)法使用了 config.addAllowedOrigin("*"); config.addAllowedHeader("*"); // 允許任何頭 config.addAllowedMethod("*"); // 允許任何方法(post、get等) //2) 是否發(fā)送Cookie信息 config.setAllowCredentials(true); //3) 允許的請(qǐng)求方式 config.addAllowedMethod("OPTIONS"); config.addAllowedMethod("HEAD"); config.addAllowedMethod("GET"); config.addAllowedMethod("PUT"); config.addAllowedMethod("POST"); config.addAllowedMethod("DELETE"); config.addAllowedMethod("PATCH"); // 4)允許的頭信息 config.addAllowedHeader("*"); // 5)配置有效時(shí)長(zhǎng) config.setMaxAge(3600*24L); //2.添加映射路徑,我們攔截一切請(qǐng)求 UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource(); configSource.registerCorsConfiguration("/**", config); //3.返回新的CorsFilter. return new CorsFilter(configSource); } }
Java主要應(yīng)用于:1. web開(kāi)發(fā);2. Android開(kāi)發(fā);3. 客戶(hù)端開(kāi)發(fā);4. 網(wǎng)頁(yè)開(kāi)發(fā);5. 企業(yè)級(jí)應(yīng)用開(kāi)發(fā);6. Java大數(shù)據(jù)開(kāi)發(fā);7.游戲開(kāi)發(fā)等。
上述就是小編為大家分享的如何在java中解決請(qǐng)求跨域了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。