Spring Boot 使用CORS如何實(shí)現(xiàn)跨域?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
同源策略
很多人對(duì)跨域有一種誤解,以為這是前端的事,和后端沒關(guān)系,其實(shí)不是這樣的,說到跨域,就不得不說說瀏覽器的同源策略。
同源策略是由 Netscape 提出的一個(gè)著名的安全策略,它是瀏覽器最核心也最基本的安全功能,現(xiàn)在所有支持 JavaScript 的瀏覽器都會(huì)使用這個(gè)策略。所謂同源是指協(xié)議、域名以及端口要相同。同源策略是基于安全方面的考慮提出來的,這個(gè)策略本身沒問題,但是我們?cè)趯?shí)際開發(fā)中,由于各種原因又經(jīng)常有跨域的需求,傳統(tǒng)的跨域方案是 JSONP,JSONP 雖然能解決跨域但是有一個(gè)很大的局限性,那就是只支持 GET 請(qǐng)求,不支持其他類型的請(qǐng)求,而今天我們說的 CORS(跨域源資源共享)(CORS,Cross-origin resource sharing)是一個(gè) W3C 標(biāo)準(zhǔn),它是一份瀏覽器技術(shù)的規(guī)范,提供了 Web 服務(wù)從不同網(wǎng)域傳來沙盒腳本的方法,以避開瀏覽器的同源策略,這是 JSONP 模式的現(xiàn)代版。
實(shí)踐
首先,我們新建兩個(gè)工程:
新建工程一:cors1 project
勾選Web模塊 因?yàn)槲覀兊认滦枰ㄟ^web接口進(jìn)行測(cè)試 點(diǎn)擊Finish完成構(gòu)建
在cors1 中 我們新建一個(gè)HelloController,寫上一個(gè)測(cè)試接口:
@RestController public class HelloController { @GetMapping("/hello") public String hello(){ return "hello cors1"; } }