framework7實現跨域取得json格式資料
阿新 • • 發佈:2019-01-27
最近做搞一個webapp專案,採用的是framework7的框架,在跨域獲取json資料的時候,老是獲取不到資料,採用jquery的jsonp的話,服務端需要對資料進行處理,後來發現framework7本身有jsonp選項,能直接獲取json資料,非常方便。
重點是,在伺服器端,需要設定訪問域名,需要在php檔案頭設定:
header('Access-Control-Allow-Origin:*');這個非常重要,不然獲取不到資料。這個是允許跨域訪問的域名授權,星號表示允許所有域名,
當然也可以設定成某個域名。
header("Access-Control-Allow-Origin:g005.com");
廢話少說,獻上程式碼。
js:
j.phpfunction 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);//返回資料 } });
<?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; //返回格式,必需 ?>