您好,登錄后才能下訂單哦!
這篇文章主要講解了Spring Boot通過CORS處理跨域問題的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
跨域的產生就是因為瀏覽器的同源策略。它是瀏覽器的核心安全功能,所謂的同源,就是指域名,協議,還有端口要相同。傳統的方案就是JSONP(前端處理方案),但是JSONP有很大的局限性,就是只支持GET請求,所以不能滿足我們的需求,而CORS(Cross-origin-resource sharing)跨域資源共享,就可以解決這個問題。他是一個瀏覽器規范,一個w3c標準,提供web服務從不同網域傳來的沙盒腳本的方法,避開了瀏覽器的同源策略。
CORS是后端的一種處理的方案,在Spring中可以配置解決跨域,在Spring Boot中它的配置變得很簡單,只需要在你controller方法上加一個注解@CrossOrigin(origins="你的請求地址")就好了。
跨域資源共享(CORS) 是一種機制,它使用額外的 HTTP 頭來告訴瀏覽器 讓運行在一個 origin (domain) 上的Web應用被準許訪問來自不同源服務器上的指定的資源。當一個資源從與該資源本身所在的服務器不同的域、協議或端口請求一個資源時,資源會發起一個跨域 HTTP 請求。
比如,站點 http://domain-a.com 的某 HTML 頁面通過 <img> 的 src 請求 https://cache.yisu.com/upload/information/20200623/121/87584.jpg。網絡上的許多頁面都會加載來自不同域的CSS樣式表,圖像和腳本等資源。
出于安全原因,瀏覽器限制從腳本內發起的跨源HTTP請求。 例如,XMLHttpRequest和Fetch API遵循同源策略。 這意味著使用這些API的Web應用程序只能從加載應用程序的同一個域請求HTTP資源,除非響應報文包含了正確CORS響應頭。
如果方法百十來個,那這種的就不適用,因此可以做一個全局配置,統一處理
@Configuration //ctrl+o找一下這個方法 public class WebMVcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("**").allowedOrigins("http://localhost:8081") .allowedHeaders("*") .allowedMethods("*") .maxAge(30*1000); } }
后端代碼處理的話就是這樣,但是還有其他方法,例如nginx,例如node.js,都可以處理,但是這兩個第三方工具的用處很多,如果僅僅局限在處理跨域,那就有點大材小用。
看完上述內容,是不是對Spring Boot通過CORS處理跨域問題的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。