測試跨域

目錄:

1、什麼是跨域

2、常見跨域場景

3、跨域處理辦法

4、跨域自測方法

5、關於跨域的說明

https://howtodoinjava.com/spring5/webmvc/spring-mvc-cors-configuration/

正文

1、什麼是跨域

跨源資源共享 簡稱CORS
CORS (Cross-origin resource sharing) allows a webpage to request additional resources into browser from other domains e.g. fonts, CSS or static images from CDN. CORS helps in serving web content from multiple domains into browsers who usually have the same-origin security policy.

都在說跨域,爲什麼postman能訪問接口,而瀏覽器就不行呢?這裏需要理解什麼是跨域,跨域是指的當前資源訪問其他資源時發起的http請求由於安全原因(由於同源策略,域名、協議。端口中只要有一個不同就不同源),瀏覽器限制了這些請求的正常訪問,特別需要注意的是這些發生在瀏覽器中。而通過postman等工具調用接口時,只是簡單的訪問一個資源,並不存在資源的相互訪問。

跨域並非一定要解決的問題,只有需要時才應該處理,無緣由的處理跨域等於隨意破壞系統的安全性。

2、常見跨域場景

對於前後端分離的項目,前端往往會調用多個不同域名服務器下的資源,由於瀏覽器的安全策略,限制了這種資源訪問方式,導致跨域問題發生。

3、跨域處理辦法

根據springboot、springmvc等項目不同具體決絕。
常見有種方法:具體內容非本文重點,不做詳述。

1》跨域過濾器

2》使用jsonp

4、跨域自測方法

1》首先構建跨域場景

修改hosts文件,給127.0.0.1 綁定多個不同的域名,如:
127.0.0.1 test.com
127.0.0.1 test1.com

這樣,就可以通過test.com、test1.com以及localhost三個域名訪問 自己的同一個工程了。

然後,首先在瀏覽器地址欄中直接訪問自己工程的get方法

在這裏插入圖片描述

2》使用測試工具測試

tips:瀏覽器可以測跨域,方法很簡單,打開一個網站(非https的網站)後F12打開【開發者工具】,在【Console】可以直接輸入js代碼測試:

其後再(瀏覽器同一個頁面)F12打開【開發者工具】,在【Console】可以直接輸入js代碼測試:
var xhr = new XMLHttpRequest();
xhr.open(‘GET’, ‘http://test.com:8761/producer/get’);
xhr.send(null);
xhr.onload = function(e) {
var xhr = e.target;
console.log(xhr.responseText);
}

如下圖:
回車,結果如下(當前未做跨域處理),如下圖跨域錯誤
在這裏插入圖片描述

3》成功跨域測試

之後我們通過做了跨域處理的網關[localhost:8756]測試,可實現跨域正常訪問
如下圖:
其中地址欄使用test.com:8756作爲域名訪問
cosole控制檯使用test1.com:8756作爲域名訪問

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章