同源策略和跨域解決方法

2021-10-24 22:28:03 字數 1564 閱讀 1090

同源位址指的是兩個頁面位址的協議 網域名稱 埠完全一樣,這兩個位址就是同源的,或者稱為同源位址。

組成部分:

同源策略(英文全稱 same origin policy)是瀏覽器提供的乙個安全功能。

同源策略不允許和非同源的**之間傳送ajax請求。

跨域指的是非同源**之間傳送ajax請求。

jsonp:出現的早,相容性好(相容低版本ie)。是前端程式設計師為了解決跨域問題,被迫想出來的一種臨時解決方案。缺點是只支援 get 請求,不支援 post 請求。

jsonp 的實現原理

jsonp 實現步驟

準備乙個處理函式handle()。

通過script標籤的src屬性,進行介面的請求。

請求時傳入請求引數,callback 用來傳遞本地處理函式的函式名,其他引數隨便寫。

當響應結束後,步驟1設定的處理函式會自動呼叫,

// 使用jsonp進行請求處理:

function

handle

(res)

<

/script>

"">

<

/script>

說明

jquery 中的 jsonp,也是通過標籤的 src 屬性實現跨域資料訪問的,只不過,jquery 採用的是動態建立和移除標籤的方式,來發起 jsonp 資料請求。

jquery使用的是$.ajax()方法進行jsonp操作。

實現

$.

ajax(,

// 下面的兩個屬性作為了解即可,通常不會使用

//jsonp: 'xyz', // 將預設的請求引數名callback設定為其他名稱xyz

//jsonpcallback: 'abc', // 將處理函式名稱設定為指定名稱abc

datatype:

'jsonp'

,// 設定datatype屬性為'jsonp',jquery就會使用jsonp的方式進行請求傳送

success:

function

(res)})

;

說明

jquery會將使用過的用於傳送jsonp請求的script標籤移除,開啟頁面也看不到。

可以從瀏覽器的network看到請求的型別為 script 。

cors:出現的較晚,它是 w3c 標準,屬於跨域 ajax 請求的根本解決方案。支援 get 和 post 請求。缺點是不相容某些低版本的瀏覽器。

同源策略和跨域

url由三部分組成 資源型別 存放資源的主機網域名稱 資源檔名。也可認為由4部分組成 協議 主機 埠 路徑 url的一般語法格式為 帶方括號的為可選項 protocol hostname port path parameters query fragment protocol 協議 指定使用的傳輸協...

,同源策略和跨域

當前頁面的url 和目標請求的url不一樣 是瀏覽器的一種安全策略 所謂同源就是同乙個源頭。官方同源 協議 埠號 網域名稱必須完全相同 違背同源策略就是跨域 當前頁面的url 和目標請求的url不一樣 jsonp,jsonp是非官方的跨域解決方案,只支援get請求。它借助script標籤的跨域能力來...

跨域 同源策略

為了保護智財權,不然你做的介面別人 都隨便用了 是瀏覽器拒絕的 一般有三種方法,哪三種方法呢?是下面三種方法 function handledata data 把callback handledata發給伺服器,伺服器拿到handledataconst http callback就是 後面的fn,因...