json前后臺(tái)數(shù)據(jù)傳輸,ajax,json和jsonp的區(qū)別

json

json格式的數(shù)據(jù):

{
    "name":'tom',
    "age":18
}

與json對(duì)象不同的是,json數(shù)據(jù)格式的屬性名稱需要用雙引號(hào)引起來(lái),用單引號(hào)或者不用引號(hào)會(huì)導(dǎo)致讀取數(shù)據(jù)錯(cuò)誤。
json的另外一個(gè)數(shù)據(jù)格式是數(shù)組,和javascript中的數(shù)組字面量相同。
['tom',18,'programmer']
ajax

異步執(zhí)行(異步指的是做完一件事后再做另外一件事,程序中的同步和異步是把現(xiàn)實(shí)生活中的概念對(duì)調(diào),也就是程序中的異步指的是現(xiàn)實(shí)生活中的同步,程序中的同步指的是現(xiàn)實(shí)生活中的異步。)
局部刷新(ajax可以實(shí)現(xiàn)局部刷新,也叫做無(wú)刷新,無(wú)刷新指的是整個(gè)頁(yè)面不刷新,只是局部刷新,ajax可以自己發(fā)送http請(qǐng)求,不用通過(guò)瀏覽器的地址欄,所以頁(yè)面整體不會(huì)刷新,ajax獲取到后臺(tái)數(shù)據(jù),更新頁(yè)面顯示數(shù)據(jù)的部分,就做到了頁(yè)面局部刷新。)
$.ajax使用方法

常用參數(shù):
1、url 請(qǐng)求地址
2、type 請(qǐng)求方式,默認(rèn)是'GET',常用的還有'POST'
3、dataType 設(shè)置返回的數(shù)據(jù)格式,常用的是'json'格式,也可以設(shè)置為'html'
4、data 設(shè)置發(fā)送給服務(wù)器的數(shù)據(jù)
5、success 設(shè)置請(qǐng)求成功后的回調(diào)函數(shù)
6、error 設(shè)置請(qǐng)求失敗后的回調(diào)函數(shù)
7、async 設(shè)置是否異步,默認(rèn)值是'true',表示異步

寫法(推薦):

$.ajax({
    url: 'js/user.json',
    type: 'GET',
    dataType: 'json',
    data:{'aa':1}
})
.done(function(data) {
    ......
})
.fail(function() {
    alert('服務(wù)器超時(shí),請(qǐng)重試!');
});

jsonp

ajax只能請(qǐng)求同一個(gè)域下的數(shù)據(jù)或資源,有時(shí)候需要跨域請(qǐng)求數(shù)據(jù),就需要用到j(luò)sonp技術(shù),jsonp可以跨域請(qǐng)求數(shù)據(jù),它的原理主要是利用了script標(biāo)簽可以跨域鏈接資源的特性。
jsonp的原理如下:

<script type="text/javascript">
    function aa(dat){
        alert(dat.name);
    }
</script>
<script type="text/javascript" src="....../js/data.js"></script>

頁(yè)面上定義一個(gè)函數(shù),引用一個(gè)外部js文件,外部js文件的地址可以是不同域的地址,外部js文件的內(nèi)容如下:
aa({"name":"tom","age":18});
外部js文件調(diào)用頁(yè)面上定義的函數(shù),通過(guò)參數(shù)把數(shù)據(jù)傳進(jìn)去。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容