ajax與jsonp的區(qū)別及用法
首先我們應該知道ajax和jsonp可以與后臺通信,獲取數(shù)據(jù)和信息,但是又不用刷新整個頁面,實現(xiàn)頁面的局部刷新。
接下來我們就來看一下ajax和jsonp的區(qū)別。
ajax和jsonp的區(qū)別:
ajax是一種發(fā)送http請求與后臺進行異步通訊的技術。其原理是實例化xmlhttp對象,使用此對象與后臺通信。
一個完整的AJAX請求一般包括以下步驟:
(1)實例化XMLHttpRequest對象
(2)連接服務器
(3)發(fā)送請求
(4)接收響應數(shù)據(jù)
jsonp是一種可以實現(xiàn)跨域發(fā)送http請求的數(shù)據(jù)通信格式,可以嵌在ajax中使用。其原理是利用script標簽可以跨域鏈接資源的特性。
JSONP由兩部分組成:回調(diào)函數(shù)和數(shù)據(jù),回調(diào)函數(shù)一般是在瀏覽器控制,作為參數(shù)發(fā)往服務器端(當然,你也可以固定回調(diào)函數(shù)的名字,但客戶端和服務器端的名稱一定要一致)。當服務器響應時,服務器端就會把該函數(shù)和數(shù)據(jù)拼成字符串返回。
JSONP的請求過程如下:
請求階段:瀏覽器創(chuàng)建一個 script 標簽,并給其src 賦值。
發(fā)送請求:當給script的src賦值時,瀏覽器就會發(fā)起一個請求。
數(shù)據(jù)響應:服務端將要返回的數(shù)據(jù)作為參數(shù)和函數(shù)名稱拼接在一起(格式類似”jsonpCallback({name: 'abc'})”)返回。當瀏覽器接收到了響應數(shù)據(jù),由于發(fā)起請求的是 script,所以相當于直接調(diào)用 jsonpCallback 方法,并且傳入了一個參數(shù)。
最后:jsonp只支持get請求,ajax支持get和post請求。
相關文章
javascript窗口寬高,鼠標位置,滾動高度(詳細解析)
javascript窗口寬高,鼠標位置,滾動高度(詳細解析)。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
從數(shù)據(jù)結(jié)構分析看:用for each...in 比 for...in 要快些
本篇文章小編將為大家介紹,從數(shù)據(jù)結(jié)構分析看:用for each...in 比 for...in 要快些。需要的朋友可以參考一下2013-04-04
使用JavaScript 實現(xiàn)對象 勻速/變速運動的方法
本篇文章是對JavaScript中實現(xiàn)對象勻速/變速運動的方法進行了詳細的介紹。需要的朋友參考下2013-05-05
javascript中的onkeyup和onkeydown區(qū)別介紹
文本框里輸入的時候要開始計算文本框里面輸入了多少字,自然想到了onkeydown事件,然后計算value.length的方法,下面看下具體的代碼2013-04-04

