jQuery之ajax的跨域获取数据
生活随笔
收集整理的這篇文章主要介紹了
jQuery之ajax的跨域获取数据
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
如果獲取的數(shù)據(jù)文件存放在遠程服務(wù)器上(域名不同,也就是跨域獲取數(shù)據(jù)),則需要使用jsonp類型。使用這種類型的話,會創(chuàng)建一個查詢字符串參數(shù) callback=? ,這個參數(shù)會加在請求的URL后面。服務(wù)器端應(yīng)當(dāng)在JSON數(shù)據(jù)前加上回調(diào)函數(shù)名,以便完成一個有效的JSONP請求。意思就是遠程服務(wù)端需要對返回的數(shù)據(jù)做下處理,根據(jù)客戶端提交的callback的參數(shù),返回一個callback(json)的數(shù)據(jù),而客戶端將會用script的方式處理返回數(shù)據(jù),來對json數(shù)據(jù)做處理。JQuery.getJSON也同樣支持jsonp的數(shù)據(jù)方式調(diào)用。下面演示關(guān)于jQuery處理跨域請求ajax的方式:
服務(wù)器端(PHP為例):
<?php $data = array('name'=>' 張三','age'=>22,'city'=>'newYork'); sleep(3); //人為設(shè)置一個等待(用于觀察什么是ajax的同步與異步) responseAJAX($data); //響應(yīng)請求返回數(shù)據(jù)/*** 返回處理后的ajax請求數(shù)據(jù)* @author martinzhang* @param $data 待返回的數(shù)據(jù)* @return none*/ function responseAJAX($data){ $data = json_encode($data);$getCallBackName = $_REQUEST['callback']; //獲取callback調(diào)用的function函數(shù)名if($getCallBackName != ''){//使用了jsonp跨域請求$data = $getCallBackName.'('.$data.')'; //返回格式形如:callbackFunName({"name":" \u5f20\u4e09","age":22,"city":"newYork"})die($data);}else{//未跨域die($data);} }
客戶端:
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/martinzhang/p/3459706.html
總結(jié)
以上是生活随笔為你收集整理的jQuery之ajax的跨域获取数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php varbinary,php –
- 下一篇: 图片圆角