現(xiàn)在咱們一起來討論瀏覽器跨域請求數(shù)據(jù)的相關(guān)問題。說這樣可能不是很標準,因為拒絕跨域請求數(shù)據(jù)并不是瀏覽器所獨有的,之所以會出現(xiàn)跨域請求不了數(shù)據(jù),是因為瀏覽器基本都實現(xiàn)了一個叫"同源策略"的安全規(guī)范。該規(guī)范具體是什么呢?我們在MDN上找到了一份資料,地址如下:
瀏覽器同源策略講解
總的來說,當(dāng)A網(wǎng)址和B網(wǎng)址在 協(xié)議 、 端口 、 域名 方面存在不同時,瀏覽器就會啟動同源策略,拒絕A、B服務(wù)器之間進行數(shù)據(jù)請求。
說了同源策略,紙上得來終覺淺,絕知此事要躬行,到底同源策略是怎么體現(xiàn)的呢?下面我將結(jié)合代碼一步一步進行演示。
1、A服務(wù)器請求不了B服務(wù)器的情況
既然是跨域,我就假設(shè)我有兩個域名,分別是 A 和 localhost , A 表示小編在阿里云上主機域名, localhost 顧名思義就是小編的開發(fā)機器了。我們想象這樣一個場景,在 localhost 上部署一個 index.html 文件,在 A 服務(wù)器上部署一個簡單的 spring-boot 后臺服務(wù),并提供一個簡單的接口暴露給 index.html 文件調(diào)用,最后瀏覽器請求 localhost 的 index.html 文件,看瀏覽器提示什么?
index.html
測試跨域訪問 hello world