ThinkPHP可(kě)以很(hěn)好(hǎo)的±→(de)支持AJAX請(qǐng)求,系統的(de)\Think\C¶↓ontroller類提 供了(le)ajaxReturn方法用(₩→yòng)于AJAX調用(yòng)後返回數(s®¶φγhù)據給客戶端。并且支持JSON、JSONP、XML和(hé)EVAL四種$×€方式給客戶端接受數(shù)據,并且支持 配置其他(tā)方式的(de)數(s≤λ hù)據格式返回。
ajaxReturn方法調用(yòng)示例:
$data = 'ok';$this->ajaxReturn($data);
支持返回數(shù)組數(shù)據:
$data['status'] = 1;$data['content'] = 'content';$this->ajaxReturn($data);
默認配置采用(yòng)JSON格式返回數(shù)據(通(tōng)過配置D® EFAULT_AJAX_RETURN進行±®π(xíng)設置),我們可(kě)以指定★ ≈格式返回,例如(rú):
// 指定XML格式返回數(shù)據$data['status'] = 1;$data['content'] = 'content';$this->ajaxReturn($data,'xml');
返回數(shù)據data可(kě)以支持字符串、數(shù)字和™<≈(hé)數(shù)組、對(duì)象,返回客戶端的(de)≥↕₹σ時(shí)候根據不(bù)同的(de)返回格式進行>β↕(xíng)編碼後傳輸。如(rú)果是(sδ↕hì)JSON/JSONP格式,會(huì)自(zì)動編碼成↔↔↑JSON字符串,如(rú)果是(shì)XMLσ∏ 方式,會(huì)自(zì)動編碼成XML字符串,←↔φ如(rú)果是(shì)EVAL方式的(de)話(huà),隻會≤∑♦(huì)輸出字符串data數(shù)據。
JSON和(hé)JSONP雖然隻有(yǒu)一(yī)個(gè)字®₽λβ母的(de)差别,但(dàn)其實他(tā)們根本不(σ&ε'bù)是(shì)一(yī)回事(shì)÷£兒(ér):JSON是(shì)一(yī)種數(shù)據交換格式,而JSφONP是(shì)一(yī)種非官方跨域數(shù)據交互協議(yì)。一←< ×(yī)個(gè)是(shì)描述信息的"γ≈(de)格式,一(yī)個(gè)是(shì)πλγ∞信息傳遞的(de)約定方法。
默認的(de)JSONP格式返回的(de)處理(lǐ)方☆™法是(shì)jsonpReturn,如(rú)果你(nǐ)采用(yòng)不(bù)同的(de≤≥£)方法,可(kě)以設置:
'DEFAULT_JSONP_HANDLER' => 'myJsonpReturn', // 默認JSONP格式返回的(de)處理(lǐ)方法
或者直接在頁面中用(yòng)callback參數(shù)來(lái)指定' ¥。
除了(le)上(shàng)面四種返回類型外(wài),我們還(hái)可(©≤∏kě)以通(tōng)過行(xíng)為(wèi)擴展¥β來(lái)增加其他(tā)類型的(de)支持,隻需要(yào)對(du☆←€ì)
ajax_return标簽位進行(xíng)行(xíng)為(wèi)綁定即α♠≤可(kě)。




