AJAX學習之路(二) 跨域請求

2021-08-21 20:43:06 字數 1148 閱讀 3003

一。引子

如果本地開啟html檔案,用的位址是本地的file:///d/a.html,而ajax請求的詩伺服器的位址,那麼就跨域了。

跨域請求預設是不可進行的。

域:協議名(http)+主機名(www.baidu.com)+埠號(80)。  三個都相同才是相同的域。

相同域請求不受限制,不同域之間不能互相請求。

跨域請求:不同域之間的訪問。

二。如何處理

1.json處理跨域請求

最常見的是jspnp。    平時寫在html頁面中的

想法:用去請求伺服器的js檔案來獲得需要的資料。伺服器端的資料總是在更新變動,所以伺服器端就有必要動態生成js檔案。

jsonp定義:伺服器端動態生成j:son檔案,吧客戶端需要的資料放在這個檔案裡面,讓客戶端通過標籤的src屬性來請求這個檔案。

**ps::不要混淆乙個東西 。json以非常簡單的方式來描述資料,是一種非常常用的資料傳輸格式;ajax通過xmlhttprequest物件獲取非本頁的內容;jsonp是為了解決客戶的跨域請求,由開發者想出來的一種解決方案,而後形成的一種非正式的傳輸協議。

2.jsonp的使用:

通過jsonp方式寫乙個跨域請求,就要定義乙個函式,並且用標籤去請求一次。可以進行封裝:

ajax.jsonp = function()else

//設定script標籤的src屬性

script.setattribute('src',url);

//把script標籤加入head,請求伺服器得到資料

}

2. **伺服器處理跨域請求

把前台客戶端ajax需要跨域請求的位址交由後台伺服器端,伺服器通過自己的抓取工具去請求相應的位址,然後把得到的資料返回給客戶端。

注意:nodegrass模組在node.js擴充套件模組中是沒有的,需要安裝。

3.基於標籤

4.cors

cors是w3c推出的一種新的機制,即跨院資源共享。這種機制允許瀏覽器向跨源伺服器發出xmlhttprequest請求,它基於瀏覽器的乙個內建機制,需要瀏覽器的支援。由於只是瀏覽器的支援,所以我們在使用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所在的頁面與請求的介面是在同乙個應用下面,那麼就不存在跨域的問題,它們是在同乙個域下面,例如這裡都在本...