Ajax和Jsonp的工作原理,以及區別

2022-07-26 05:57:16 字數 1138 閱讀 5708

ajax工作原理是:

相當於在使用者和伺服器之間加了—個中間層(ajax引擎),使使用者操作與伺服器響應非同步化。

對於使用者請求ajax引擎會做一些資料驗證和資料處理,不是所有請求都提交給伺服器,當需要從伺服器讀取新資料時由ajax引擎代為向伺服器提交請求。ajax最大優點就是不重新整理整個頁面的前提下與伺服器通訊維護資料。

過程的話

第一步:建立乙個ajax引擎物件,ie6的是new activexobject其他瀏覽器是new乙個xmlhttprequest物件

第二步 呼叫open方法啟動乙個請求以備傳送,open方法傳入三個引數 請求型別,請求url和乙個布林值

第三步 呼叫send方法傳送

第四部 處理**函式onreadystatechange,當readstate = 4 響應資料完成時 並且2status=200請求成功的時候處理響應資料

注意:**函式要寫在open()和send()之前

jsonp原理:

動態建立乙個script標籤,利用script標籤src屬性訪問沒有限制,實現跨域。

web客戶端通過與呼叫指令碼一樣的方式來呼叫跨域伺服器上動態生成的js格式檔案(字尾.json),伺服器之所以要動態生成json檔案目的把客戶端需要的資料裝入進去。

允許使用者傳遞乙個callback引數給服務端,然後服務端返回資料時會將這個callback引數作為函式名來包裹住json資料 這樣客戶端就可以隨意定製自己的函式來自動處理返回資料

ajax 和 jsonp的區別:

1.ajax和jsonp的呼叫方式很像,目的一樣,都是請求url,然後把伺服器返回的資料進行處理,因此jquery和ext等框架都把jsonp作為ajax的一種形式進行了封裝;

2.實質不同

ajax的核心是通過xmlhttprequest獲取非本頁內容

jsonp的核心是動態新增script標籤呼叫伺服器提供的js指令碼(字尾.json)

3.區別聯絡

不在於是否跨域

ajax通過服務端**一樣跨域

jsonp也不並不排斥同域的資料的獲取

4.jsonp是一種方式或者說非強制性的協議

ajax也不一定非要用json格式來傳遞資料 

5.jsonp只支援get請求,ajax支援get和post請求

ajax工作原理,Jsonp原理

ajax工作原理是 相當於在使用者和伺服器之間加了 個中間層 ajax引擎 使使用者操作與伺服器響應非同步化。對於使用者請求ajax引擎會做一些資料驗證和資料處理,不是所有請求都提交給伺服器,當需要從伺服器讀取新資料時由ajax引擎代為向伺服器提交請求。ajax最大優點就是不重新整理整個頁面的前提下...

jsonp的工作原理

跨域 我在www.xiaoyanzi.com 站點下面的乙個頁面想去訪問 下面的乙個資源.a.html b.html 1 document a.html 想訪問b.html 下面的元素 頂級網域名稱都不一樣。a.html b.html 主網域名稱一樣。a.html 想訪問b.html 預設不允許。同...

ajax和jsonp跨域的原理本質詳解

為什麼會有跨域問題?因為有同源策略 同源策略是瀏覽器的一種安全策略,所謂同源指的是 請求url位址中的 協議,網域名稱 和 埠 都相同,只要其中之一不相同就是跨域 同源策略主要為了保證瀏覽器的安全性 程式設計客棧在同源策略下,瀏覽器 不允許 ajax跨域獲取伺服器資料 跨域請求 ajax的基本概念 ...