好習慣造就好人生,開發中要善於總結。今天我繼續給你們分享一些乾貨,關注個人粉絲們有福利了哈。下邊是我在PC端調用接口整理出來的一些筆記,以及提醒你們須要注意的事項!javascript
1.首先我說一下爲啥會在PC端調用接口獲取數據吧!
給個連接給大家:http://www.bitscn.com/pdb/php/201411/402...。看完這篇文章以後估計你就明白個人用意了。
二、把相關的資料整合,不但利於信息的獲取還能做爲前車可鑑,前人栽樹後人乘涼懂吧?哈哈,我是博愛黨。php
一、Yii2 PC端調用接口獲取數據的三種方式html
PHP調用Api接口的方法java
一、直接在方法裏引用接口的url。 二、經過file_get_contents()函數獲取url的數據。 三、把獲取到的JSON格式數據進行反轉。(可選) 四、參考網址:http://www.jb51.net/article/20705.htm //PHP遠程調用URL 例: $url='http://api.xxx.com/v1/departments?id=list&company_id=1'; $data=file_get_contents($url); $data_1 = json_decode($data,true); //JSON反轉
Ajax調用Api接口的方法jquery
例: $.ajax({ type:"POST", url: //你的請求程序頁面隨便啦(接口地址) async:false,//同步:意思是當有返回值之後纔會進行後面的js程序。 data://請求須要發送的處理數據 success:function(msg){ if (msg) {//根據返回值進行跳轉 window.location.href = '你的跳轉的目標地址(頁面地址)'; } }
JQ調用Api接口的方法web
例: <script type="text/javascript" src="/apihandonesvn/frontend/web/assets/68738eee/jquery-1.11.2.min.js"></script> <script type="text/javascript"> //一、GET方式 $.get('http://api.XXX.com/v1/departments?grade=1',function(data){ // console.log(data);//輸出內容,相似alert() $('#content').html(data); }); //二、POST方式 $.post('http://api.XXX.com/v1/departments?grade=1',{a:1,b:2,c:3},function(data){ $('#content').html(JSON.stringify(data)); }); </script>
補充:使用後兩種方法的話,在接口對應控制器的全部方法頂部加上下面代碼ajax
public function behaviors() { return ArrayHelper::merge([ [ 'class' => Cors::className(), 'cors' => [ 'Origin' => ['http://www.ceshi.com'],//PC端的Url 'Access-Control-Request-Method' => ['GET','POST','PUT','DELETE', 'HEAD', 'OPTIONS'], ], 'actions' => [ 'index' => [ 'Access-Control-Allow-Credentials' => true, ] ] ], ], parent::behaviors()); }
以上三種PC端調用接口的方式,本人親測過均可行,大家各取所愛。json
二、PC端調用接口,接口怎麼獲取uid的問題?
此時接口就不可用Yii自帶的Yii:$app->user->id獲取了,由於接口也不可能登陸。接口要獲取當前登陸者的uid能夠經過PC端傳個access-token,而後在接口用get獲取去查出uid,解決。
接口獲取其它參數的時候也可一樣仿造此方法。api
三、報:PHP Warning – yii\base\ErrorException
Invalid argument supplied for foreach()錯誤的問題及解決方法
這個錯誤是循環空數據形成的,只要在數據循環前得加個判斷,保證數據存在才能循環就解決了。這雖然不是什麼特別難解決的錯誤,可是細節問題咱們還得注意,細節決定成敗。app
一、PC端調用接口進行本地測試,本地接口地址最好別和網上一致,由於這樣它會先走本地接口,要是遇到本地接口好的話,很差找緣由。
PHP(CURL)POST數據調用API簡單示例:http://eyexiaobo.iteye.com/blog/1100712