1. 程式人生 > >framework7實現跨域取得json格式資料

framework7實現跨域取得json格式資料





最近做搞一個webapp專案,採用的是framework7的框架,在跨域獲取json資料的時候,老是獲取不到資料,採用jquery的jsonp的話,服務端需要對資料進行處理,後來發現framework7本身有jsonp選項,能直接獲取json資料,非常方便。
重點是,在伺服器端,需要設定訪問域名,需要在php檔案頭設定:
header('Access-Control-Allow-Origin:*');這個非常重要,不然獲取不到資料。這個是允許跨域訪問的域名授權,星號表示允許所有域名,
當然也可以設定成某個域名。 

header("Access-Control-Allow-Origin:g005.com"); 

廢話少說,獻上程式碼。

js:

 function get_json()
{
var jurl="http://www.g1005.com/shanwang/j.php";
$$.ajax({
    url:jurl,
    contentType: "OPTIONS",
    crossDomain: true,//這個一定要設定成true,預設是false,true是跨域請求。
    dataType:"json",
    data: {
     age: "19",
     message: "good!"
    },
     beforeSend:function(e)
    {
    	//alert("ddddd");//傳送資料過程,you can do something,比如:loading啥的
    },
    success: function( response ) {
    alert( response.age);//返回資料
    }
});
j.php
<?php
header('Access-Control-Allow-Origin:*');//very very very important!重要的事情重複三遍,這裡非常重要,如果不設定,無法獲得資料。
header('Content-Type:text/html;Charset=utf-8');
$callback = isset($_GET['callback']) ? trim($_GET['callback']) : ''; //jsonp回撥引數,必需
$date = array("age"=>$_GET['age'], "message"=>$_GET['message']);

$tmp= json_encode($date); //json 資料
echo $tmp;  //返回格式,必需
?>