ajax跨域請求方法

2022-09-03 01:57:11 字數 839 閱讀 9462

一、為什麼會需要ajax跨域,為什麼會出現跨域請求?

為保護使用者資訊保安,瀏覽器引入同源政策(same-origin policy),同源指的是什麼相同呢?

*  協議相同

*  網域名稱相同

*  埠號相同

當非同源時會:

*  cookie localstorage 無法讀取

*  dom無法獲取

*  ajax請求無法傳送

所以,當ajax傳送給非同源的**時,就會跨域請求失敗。

二、跨域請求解決方法

1)jsonp  該方法簡單適用,老式瀏覽器也適用並且伺服器改動非常小。但是只能傳送get請求

原理:利用的屬性src跨域的特性。

伺服器接收到這個函式名後,拼接出該函式的呼叫,並且在引數中傳入需要傳遞給瀏覽器的資料

返回給瀏覽器後,瀏覽器將其作為js解析。

伺服器:

2)cors(cross-origin resource sharing)跨域資源共享,是ajax跨域請求解決的根本方法,可以傳送get和post請求

特點:目前幾乎所有的瀏覽器都支援cors,ie 10以上。cors的整個過程都由瀏覽器自動完成,前端無需做任何配置,和平時傳送ajax請求沒有差別。

所以,實現cors的關鍵在伺服器配置,只要伺服器實現cors,就可以進行跨域通訊。

原理:詳見

Ajax跨域請求

一 什麼是跨域請求 網域名稱它由http 協議 www 子網域名稱 baidu 主網域名稱 以及8080 埠號 組成,當另乙個網域名稱與其中任意一項對應不等的話,那麼我們說兩個網域名稱就是跨域的。如的頁面上我們要請求資料到上去,那麼就說這種請求是跨域請求。二 為什麼要講跨域請求 因為在一般的請求條件...

Ajax 跨域請求

隨筆 71 文章 0 客戶端js 服務端 1 string callbackfunname context.request callbackparam 2 context.response.write callbackfunname ps 客戶端的jsonp引數是用來通過url傳參,傳遞jsonpc...

ajax跨域請求

通過xhr實現ajax通訊的乙個主要的限制,於跨域安全策略。在預設情況下,xhr物件只能訪問與包含它的頁面位於同乙個域中的資源。這樣可以防止一些惡意行為。所謂的域,可以理解成網域名稱,如果這個xhr所在的頁面與請求的介面是在同乙個應用下面,那麼就不存在跨域的問題,它們是在同乙個域下面,例如這裡都在本...