1.什麼是跨域?什麼是不跨域?
解釋一:同一個ip、同一個網絡協議、同一個端口,三者都滿足就是同一個域,否則就是
跨域問題了。而爲什麼開發者最初不直接定爲一切可跨域的呢?默認的爲什麼都是不可跨域呢?這就涉及到了同源策
略,爲了系統的安全,由Netscape提出一個著名的安全策略。現在所有支持JavaScript的瀏覽器都會使用這個策略。
所謂同源是,域名,協議,端口相同。當我們在瀏覽器中打開百度和谷歌兩個網站時,百度瀏覽器在執行一個腳本的
時候會檢查這個腳本屬於哪個頁面的,即檢查是否同源,只有和百度同源的腳本纔會被執行,如果沒有同源策略,那
隨便的向百度中注入一個js腳本,彈個惡意廣告,通過js竊取信息,這就很不安全了。
解釋二:跨域請求,就是說瀏覽器在執行腳本文件的ajax請求時,腳本文件所在的服務地址和請求的服務地址不一樣。說白了就是ip、網絡協議、端口都一樣的時候,就是同一個域,否則就是跨域。這是由於Netscape提出一個著名的安全策略——同源策略造成的,這是瀏覽器對JavaScript施加的安全限制。是防止外網的腳本惡意攻擊服務器的一種措施。2.springboot下解決跨域的方法步驟如下(利用@Configuration配置跨域):
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter;
@Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); // 1 corsConfiguration.addAllowedHeader("*"); // 2 corsConfiguration.addAllowedMethod("*"); // 3 return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", buildConfig()); // 4 return new CorsFilter(source); }
}第二中代碼方法
package com.chengzai.web.home.CorsConfiguration.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * 跨域訪問更改權限 * * @author jzwx * @version $Id: CorsConfig, v 0.1 2017-09-26 15:39 jzwx Exp $ */ @Configuration public class CorsConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("*") .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS") .allowCredentials(false).maxAge(3600); } }
①在項目能夠掃描的的配置模塊下導入該Java文件(CorsConfig.java).
②啓動Tomcat,windows+R輸入cmd在DOS下輸入ipconfig查詢自己的ipv4地址,然後將自己局域網IP和端口號還有訪問路徑(自己的Controller目錄中的路徑)發送給前端這就就可以進行前後端聯調了.
注意:springboot下注釋WebSecurityConfiguration.java+MultiHttpSecurityConfig.java文件就不需要登錄了