Ionic前台與PHP後台間資料互動

2021-07-27 17:55:40 字數 2541 閱讀 1085

ionic 目錄:

我們在開發ionic程式中,必不可少的要與後台進行資料互動,有將資料提交伺服器和從伺服器獲取資料的操作。

如果我們伺服器使用php語言進行開發,可能會遇到以下問題:

1、無法訪問伺服器。

2、伺服器端使用

$_post[  ]

命令無法獲取前台提交的資料。

下面我們就一一說明這些問題如何解決。

1、無法訪問伺服器。

在你伺服器正常執行,能夠通過伺服器站點正常訪問,但使用ionic程式無法訪問情況下,一般就是存在跨域

請求問題。

在我們使用 ionic serve 命令進行除錯的時候,通過站點 http://localhost:8100/#/ 來訪問我們的前台程式,而我們

啟動apache服務後,通過站點 http://localhost/ 來訪問服務端,這裡就存在跨域問題,當我們從不同的伺服器(不同網域名稱)上獲取資料時,需要使用跨域

請求。在伺服器php**頭部加入以下**用於進行跨域訪問

header("access-control-allow-origin: *");

header("access-control-allow-headers: origin, x-requested-with, content-type, accept");

header("access-control-allow-methods: get, post, put, delete");

2、伺服器端使用

$_post[ ]

命令無法獲取前台提交的資料。

angularjs封裝了乙個$http服務,用來讀取遠端伺服器中的資料。其中封裝的$http.post和$http.get使用起來比較方便。

當我們前台程式中使用$http.post

向後台提交資料時,我們就會發現$_post[  ]

命令一直接收不到資料。

這是由於angularjs

的$http

服務與jquery

中的不同所導致的。

劃重點了!

在jquery

中傳輸資料使用的

content-type

為,類似

url傳參,而

angularjs

中使用的

content-type

為,是使用

json

序列化傳參。在

php中,預設識別的

content-type

是,因此對於

content-type

為格式的資料無法解析,這時候使用

$_post[  ]

就會接收不到資料。

所以我們要向伺服器端能接收到資料,就要使前台ionic程式傳輸的資料和後台伺服器接收的資料格式相同。 

這裡有兩種解決方案,乙個是將

angularjs

的傳參方式改為

jquery

的方式。

}});另一種方式是修改伺服器端**,使

php可以接收

json

資料(博主使用的是這種方式)。

然後使用$globals["http_raw_post_data"]或file_get_contents(「php://input」)來接收資料。

這樣我們伺服器就接收到了前台傳來的json格式的資料,然後伺服器再對json資料進行解析就可以了。

舉個栗子

前台ionic程式向伺服器端傳輸資料

$scope.login = function () ).success(function (response) ).error(function () )

};

後台伺服器接收並解析資料

執行緒 前台與後台

c 中的執行緒分為兩類 前台執行緒與後台執行緒 後台執行緒 不會阻止程序結束 所有前台執行緒結束之後,後台執行緒無論執行完否都會被強制結束 前台執行緒 相反就會阻止執行緒結束 示例 1.1 在winform中,存在乙個主介面執行緒,我另起乙個執行緒作為後台執行緒,這裡通過設定新執行緒的isbackg...

PHP基於websocket的前台及後台實時推送

php websocket 實時訊息推送 實現步驟如下 1.獲取在 goeasy 官網上註冊乙個賬號,並新建乙個 建立好後系統會為該 自動生成兩個 key,乙個既可以用來接收又可以用來推送 supper key 另乙個只可以用來接收 subscriber key 2.客戶端訂閱乙個 channel....

php 後台資料庫與前台請求結合

get請求 預設 get獲取 get請求中引數值 username get username password get password echo username username.password password post請求,開啟網頁沒值 獲取 body 體中,這兩個變數的值 usernam...