ajax+jsonp

1,ajax 原生寫法


1.1、post和get請求的區別


1)get

get請求的參數是直接接在url后面。send(null)

get方法在低版本的瀏覽器,傳遞中文參數的時候會亂碼,解決方法是把參數用encodeURI()函數包起來。


2)post

注意在發送數據前,要設置請求頭,否則獲取不到返回的responseText

如果沒有在數據發送前設置請求頭的編碼,獲取不到返回的數據,并且出錯

1.3jquery的ajax

2,jsonp的原生寫法


2.1,jquery的jsonp


3,jsonp和ajax的區別

json是一種數據格式,數據描述 ,而jsonp則是一種非官方定義的協議,解決跨域問題的一種解決方案。ajax是通過XMLHttpRequest向服務器發送異步請求,而jsonp是通過script標簽發送src請求,來訪問其他域的數據接口,返回的是一個callback函數,數據被封裝在這個函數中。并且是同步的。

ajax與jsonp的異同再做一些補充說明:

1、ajax和jsonp這兩種技術在調用方式上“看起來”很像,目的也一樣,都是請求一個url,然后把服務器返回的數據進行處理,因此jquery和ext等框架都把jsonp作為ajax的一種形式進行了封裝;

2、但ajax和jsonp其實本質上是不同的東西。ajax的核心是通過XmlHttpRequest獲取非本頁內容,而jsonp的核心則是動態添加標簽來調用服務器提供的js腳本。一個同步,一個是異步

3、所以說,其實ajax與jsonp的區別不在于是否跨域,ajax通過服務端代理一樣可以實現跨域,jsonp本身也不排斥同域的數據的獲取。

4、還有就是,jsonp是一種方式或者說非強制性協議,如同ajax一樣,它也不一定非要用json格式來傳遞數據,如果你愿意,字符串都行,只不過這樣不利于用jsonp提供公開服務。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容