當前位置:首頁 » 編程語言 » phpjson跨域

phpjson跨域

發布時間: 2022-05-17 17:27:31

『壹』 thinkphp 跨域獲取 xml 轉 json

php xml與json間的相互轉換
一,參考xml文件如下
查看復制列印?
<?xml version="1.0" encoding="UTF-8"?>
<humans>
<zhangying>
<name>張映</name>
<sex>男</sex>
<old>28</old>
</zhangying>
<tank>
<name>tank</name>
<sex>
<hao>yes</hao>
<aaaa>no</aaaa>
</sex>
<old>28</old>
</tank>
</humans>
二,xml轉換成json
利用simplexml
查看復制列印?
public function xml_to_json($source) {
if(is_file($source)){ //傳的是文件,還是xml的string的判斷
$xml_array=simplexml_load_file($source);
}else{
$xml_array=simplexml_load_string($source);
}
$json = json_encode($xml_array); //php5,以及以上,如果是更早版本,請下載JSON.php
return $json;
}
三,json轉換成xml
利用遞歸函數
查看復制列印?
public function json_to_xml($source,$charset='utf8') {
if(emptyempty($source)){
return false;
}
$array = json_decode($source); //php5,以及以上,如果是更早版本,請下載JSON.php
$xml ='<!--l version="1.0" encoding="'.$charset.'-->';
$xml .= $this->change($array);
return $xml;
}
public function change($source) {
$string="";
foreach($source as $k=>$v){
$string .="<".$k.">";
if(is_array($v) || is_object($v)){ //判斷是否是數組,或者,對像
$string .= $this->change($v); //是數組或者對像就的遞歸調用
}else{
$string .=$v; //取得標簽數據
}
$string .="";
}
return $string;
}
上面的方法json_to_xml,可以支持<name>aaaa</name>,不支持<name type='test'>aaaaa</name>看代碼就能看明白。

『貳』 如何實現跨域POST json數據,同時可以修改/添加header

在你自己伺服器上寫一個PHP腳本,獲取一個json數據,然後讓後端POST過去即可。
PHP可以修改header請求頭的,而且請求json或者其他數據都可以,並且沒有跨域不跨域的問題。

『叄』 PHP跨域獲取json數據的方法,PHP裡面有沒有類似ajax的函數

php中的文件讀寫函數基本上都可直接支持url,也就是說你可以像操作本地文件一樣直接操作其他網站的文件(當然只是讀取,寫入是不可能的),而且沒有任何跨域限制,比如下面一行代碼就可直接讀取網路首頁的html代碼:
$bd=file_get_contents("http://www..com");
如果想獲取json數據,只需把網址換一下即可。當然,還需要做一下格式轉換,php本身就有專門的json轉換函數:
$json=json_decode(file_get_contents("網址"),true);
這樣一看,是不是比前端的ajax還要簡單百倍?!

『肆』 php怎麼配合$getjson跨域callback=

type : "post",
url : "ajax.php",
dataType : "jsonp",
jsonp: "callback",//傳遞給請求處理程序或頁面的,用以獲得jsonp回調函數名的參數名(默認為:callback)
jsonpCallback:"success_jsonpCallback",//自定義的jsonp回調函數名稱,默認為jQuery自動生成的隨機函數名
success : function(json){
alert('success');
},
error:function(){
alert('fail');
}

『伍』 jsonp跨域怎麼給php頁面傳個值過去,php怎麼接收

jsonp也是通過get傳值的, PHP直接$_GET就可以

『陸』 JSONP怎樣實現跨域

用jQuery實現jsonp跨域非常簡單,只要設置ajax()的dateType和jsonp兩個參數就行了:

$.ajax({
url:'xxxxxxxx.php',
type:'get',
dataType:'jsonp',
jsonp:'jsonCallBack',//這個名稱是和後台約定好的
success:function(result){},
error:function(e){});
});

但是要實現jsonp跨域,還要後台配合。如果後台檢測到請求是jsonp,就要把本來是json格式的數據包裝成一個javaScript腳本,腳本里包含一個函數,函數名就是上面代碼傳過來的jsonp參數。這樣當瀏覽器接收到這個腳本時,就會執行這個腳本,這一切jQuery都為我們做好了。

『柒』 jsonp跨域請求範例,求PHP版本的jsonp範例。

jquery代碼:
$.getJSON("http://www.app.com/index.php?c=add&callback=?",{id: 10, name: "test"}, function(data){
alert(data.msg);
});
服務端返回:
jsonp1310628945031({"rs":true,"msg":""})
PHP代碼:
$result['rs']= false;
$result['msg'] = '您的信息提交成功!';
$json = new Services_JSON();
header('Content-Type: application/json');
echo $_GET['callback'].'('.$json->encode($result).')';

『捌』 PHP如何實現跨域傳遞參數

通常是用json,你可以用php的函數json_encode(),轉換為json格式,然後輸出進行傳遞

『玖』 如何可以跨域訪問靜態json文件呢

直接訪問地址唄,http://host/jsondata/id.json,和請求js,css,圖片的道理是一樣的,


直接訪問出錯的話:

  1. 對方禁止跨域請求該文件,即禁止下載

  2. url的映射路徑方式被重寫,比如:地址規格可能為http://host/data/json/id

『拾』 跨域是指什麼,因為什麼引起的有哪些解決方案web前端知識

域(Domain)是Windows網路中獨立運行的單位,域之間相互訪問則需要建立信任關系(即Trust Relation)。信任關系是連接在域與域之間的橋梁。當一個域與其他域建立了信任關系後,2個域之間不但可以按需要相互進行管理,還可以跨網分配文件和列印機等設備資源,使不同的域之間實現網路資源的共享與管理。 有一種簡明的說法來解釋廣域跨域:跨域訪問,簡單來說就是 A 網站的 javascript 代碼試圖訪問 B 網站,包括提交內容和獲取內容。由於安全原因,跨域訪問是被各大瀏覽器所默認禁止的。


解決方案:

1、js向伺服器發送請求,然後讓伺服器去另一個域上獲取數據後返回。(用於你無法控制另一個域)比如php中利用cUrl。
2、放置跨域文件.
3、用JSONP。雖然不能跨域進行通信,但是可以引入跨域的js文件。
先定義一個函數

varreturnData;
functiongetData(obj){
returnData=JSON.parse(obj);
}


當我們要向www..com/s.php請求數據的時候,我們可以引入某個包含返回信息的js文件。
比如:<script type="text/javascript" src="www..com/s.php?id=12321" />
js的內容是getData({json:'格式'});返回時輸出 格式是 text/javascript (比如php用header('Content-type:text/javascript');來輸出)
那麼文件載入好後解析js時就會執行這個函數,返回得到的數據就被賦值給了returnData變數
以這樣的方式插入到頁面中:

varscript=document.createElement('script');
script.src='www..com/s.php?id=12321';//傳入參數id=12321
body.appendChild(script);
熱點內容
安卓nba2k18什麼時候出 發布:2025-05-15 04:38:42 瀏覽:391
王者安卓轉蘋果為什麼顯示失敗 發布:2025-05-15 04:35:49 瀏覽:16
手機優酷緩存視頻格式 發布:2025-05-15 04:13:45 瀏覽:209
公益電影分鏡頭腳本插畫 發布:2025-05-15 04:08:37 瀏覽:960
數據壓縮編碼 發布:2025-05-15 03:58:44 瀏覽:725
java字元為空 發布:2025-05-15 03:57:11 瀏覽:546
速訊安卓哪裡下載 發布:2025-05-15 03:55:02 瀏覽:48
緩存區數據讀寫原理 發布:2025-05-15 03:39:57 瀏覽:585
編譯器生成的是二進制文件嗎 發布:2025-05-15 03:38:42 瀏覽:955
運營為什麼區分ios和安卓 發布:2025-05-15 03:30:02 瀏覽:630