首頁 >web前端 >js教程 >ajax與jsonp的差別有哪些? ajax與jsonp的區別介紹

ajax與jsonp的差別有哪些? ajax與jsonp的區別介紹

不言
不言原創
2018-10-16 09:56:103050瀏覽

ajax和jsonp都是請求方式,那麼ajax和jsonp這兩種請求方式有什麼差別呢?本篇文章就跟大家介紹一下ajax和jsonp的差別,有興趣的朋友可以看看。

首先我們應該知道ajax和jsonp可以與後台通信,獲取數據和信息,但是又不用刷新整個頁面,實現頁面的局部刷新。

接下來我們就來看看ajax和jsonp的差別。

ajax和jsonp的區別:

ajax是一種發送http請求與後台進行非同步通訊的技術。其原理是實例化xmlhttp對象,使用此對象與後台通訊。

一個完整的AJAX請求一般包含以下步驟:

(1)實例化XMLHttpRequest物件

(2)連線伺服器

(3)發送請求

(4)接收回應資料

jsonp是一種可以實現跨域發送http請求的資料通訊格式,可以嵌在ajax中使用。其原理是利用script標籤可以跨網域連結資源的特性。

JSONP由兩部分組成:回呼函數和數據,回呼函數一般是在瀏覽器控制,作為參數發送到伺服器端(當然,你也可以固定回調函數的名字,但客戶端和伺服器端的名稱一定要一致)。當伺服器回應時,伺服器端就會把該函數和資料拼成字串回傳。

JSONP的請求流程如下:

請求階段:瀏覽器建立一個 script 標籤,並給予其src 賦值。

發送請求:當給script的src賦值時,瀏覽器就會發起一個請求。

資料回應:服務端將要傳回的資料作為參數和函數名稱拼接在一起(格式類似」jsonpCallback({name: 'abc'})”)回傳。當瀏覽器接收到了回應數據,由於發起請求的是 script,所以相當於直接呼叫 jsonpCallback 方法,並且傳入了一個參數。

最後:jsonp只支援get請求,ajax支援get和post請求。

以上是ajax與jsonp的差別有哪些? ajax與jsonp的區別介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn