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提供公開服務。