同源位址指的是兩個頁面位址的協議 網域名稱 埠完全一樣,這兩個位址就是同源的,或者稱為同源位址。
組成部分:
同源策略(英文全稱 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,因...