同源策略
很多人對跨域有一種誤解,以為這是前端的事,和后端沒關系,其實不是這樣的,說到跨域,就不得不說說瀏覽器的同源策略,
同源策略是由 Netscape 提出的一個著名的安全策略,它是瀏覽器最核心也最基本的安全功能,現在所有支持 JavaScript 的瀏覽器都會使用這個策略,所謂同源是指協議、域名以及埠要相同,同源策略是基于安全方面的考慮提出來的,這個策略本身沒問題,但是我們在實際開發中,由于各種原因又經常有跨域的需求,傳統的跨域方案是 JSONP,JSONP 雖然能解決跨域但是有一個很大的局限性,那就是只支持 GET 請求,不支持其他型別的請求,而今天我們說的 CORS(跨域源資源共享)(CORS,Cross-origin resource sharing)是一個 W3C 標準,它是一份瀏覽器技術的規范,提供了 Web 服務從不同網域傳來沙盒腳本的方法,以避開瀏覽器的同源策略,這是 JSONP 模式的現代版,
實踐
首先,我們新建兩個工程:
新建工程一:cors1 project

勾選Web模塊 因為我們等下需要通過web介面進行測驗 點擊Finish完成構建

在cors1 中 我們新建一個HelloController,寫上一個測驗介面:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello cors1";
}
}
新建工程二:cors2 project

對應的勾選Web模塊進行構建,
在cors2的static目錄下,建立Index.html,并撰寫一個GET請求按鈕,發起Ajax請求(前提:static目錄下有jquery.js)
請求cors1 工程的 localhost:8080/hello介面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src=https://www.cnblogs.com/doondo/p/"jquery3.3.1.js"></script>
<body>
<script>
function getData() {
$.get("http://localhost:8080/hello",function (msg) {
$("#app").html(msg);
})
}
</script>
