綜合 CORS 方式跨域訪問

2021-08-08 13:28:17 字數 1873 閱讀 2895

一、基礎概念

同源策略:

協議為http,網域名稱www.a.com,埠預設80,則下面的同源與非同源舉例:

同源;不同源(協議不同);

不同源(網域名稱不同);

不同源(網域名稱不同);

不同源(埠不同)。

跨域請求:

非同源的請求,需要跨域才能成功。跨域比較常用的有兩種方法:cors、jsonp,後者是一種非官方方法。

二、通過 access-control-allow-origin 實現跨域

實驗思路:

1、環境配置:tomcat,jdk1.8;

2、實踐目的:(1)、學會cors 跨域訪問的基礎使用;(2)、探索能否多次跨域(即應用three請求應用one的資源,能否間接通過跨域請求應用two,而應用two再跨域請求應用one實現)

實踐步驟:

應用one 的首頁

請求區	請求結果

請求區	請求結果

4、修改hosts 與tomcat 的service.xml 檔案,配置專案網域名稱(1)、修改c:\windows\system32\drivers\etc\hosts 檔案,增加三條:

(2)、修改tomcat 的service.xml 檔案,在元素體內增加三條:

這樣,便為本地tomcat 中專案配置了網域名稱。

5、測試

結果:

結果:

結論:不能直接跨域訪問,不能跨域後再跨域訪問第三者。

將: response.setheader("access-control-allow-origin", "*");

替換為:

事實上,經過若干次實踐發現,判斷能否跨域的工作過程如下:

1、只要伺服器端設定了access-control-allow-origin 頭,則所有對該服務的直接請求返回狀態都是200,但不一定真正返回資料;

可使用陣列等 與request 的referer 頭等資訊實現特定幾個**可訪問此應用。

注意:

這種方式js 中ajax 請求時根本不需設定特殊請求頭,實際上有的網友說的origin 等請求頭根本不存在,只需寫完整路徑就行。

使用 CORS 方式跨域

cors cross origin resource sharing 跨源資源共享 當乙個請求url的協議 網域名稱 埠三者之間任意一與當前頁面位址不同即為跨域。不需要攜帶cookies,authorization,則前端無需配置 需要攜帶cookies,authorization,前端的xmlht...

跨域實現方式CORS

之前我們已經了解到跨域的實現方式jsonp,今天來講講另外一種 cors.什麼是cors cors 全稱為 cross origin resource sharing,即跨域資源共享,它允許瀏覽器向跨域伺服器傳送 ajax 請求,克服了 ajax 只能同源使用的限制。實現原理 當客戶端傳送請求時,若...

跨域訪問小結 HTTP 訪問控制(CORS)

跨域資源共享 cors 是一種機制,它使用額外的 http 頭來告訴瀏覽器 讓執行在乙個 origin domain 上的web應用被准許訪問來自不同源伺服器上的指定的資源。當乙個資源從與該資源本身所在的伺服器不同的域 協議或埠請求乙個資源時,資源會發起乙個跨域 http 請求。比如,站點 的某 h...