AngularJS與后端php的數(shù)據(jù)交互方法_第1頁
AngularJS與后端php的數(shù)據(jù)交互方法_第2頁
AngularJS與后端php的數(shù)據(jù)交互方法_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第AngularJS與后端php的數(shù)據(jù)交互方法簡(jiǎn)述:

AngularJS誕生于2009年,由MiskoHevery等人創(chuàng)建,后為Google所收購(gòu)。是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。AngularJS有著諸多特性,最為核心的是:MVC、模塊化、自動(dòng)化雙向數(shù)據(jù)綁定、語義化標(biāo)簽、依賴注入等等。

它不僅僅是一個(gè)類庫,而是提供了一個(gè)完整的框架。它避免了您和多個(gè)類庫交互,需要熟悉多套接口的繁瑣工作。它由GoogleChrome的開發(fā)人員設(shè)計(jì),引領(lǐng)著下一代Web應(yīng)用開發(fā)。也許我們5年或10年后不會(huì)使用AngularJS,但是它的設(shè)計(jì)精髓將會(huì)一直被沿用。

問題及方案:

既然是前端框架,就免不了與后臺(tái)的數(shù)據(jù)交互。本文講解與PHP數(shù)據(jù)交互中的重點(diǎn)。

AngularJS的$http不管你使用的是POST還是PUT,默認(rèn)的發(fā)送和請(qǐng)求數(shù)據(jù)格式都是json的,這個(gè)我們可以從它發(fā)送的http請(qǐng)求頭中看到:Content-Type:application/json;charset=UTF-8。而PHP的GET或者POST接收的http請(qǐng)求數(shù)據(jù)卻是:Content-Type:application/x-www-form-urlencoded;charset=UTF-8。

所以新手在使用AngularJS時(shí)候都會(huì)遇到這個(gè)問題,明明發(fā)送過來了,為什么我收不到數(shù)據(jù)?解決這個(gè)問題我們可以從兩個(gè)方面入手:

一、在PHP中

$data=file_get_contents("php://input");

echo$data;

這樣你會(huì)發(fā)現(xiàn)。$data是一個(gè)json數(shù)據(jù),之后PHP中你便可以對(duì)這個(gè)數(shù)據(jù)做其他處理了。

二、Angular中重構(gòu)http請(qǐng)求

varws=angular.module("app",[function($httpProvider){

$httpProvider.defaults.headers.post["Content-Type"]="application/x-www-form-urlencoded;charset=utf-8";

$httpProvider.defaults.headers.put['Content-Type']='application/x-www-form-urlencoded;charset=utf-8';

varparam=function(obj){

varquery="",name,value,fullSubName,subName,subValue,innerObj,i;

for(nameinobj){

value=obj[name];

if(valueinstanceofArray){

for(i=0;ivalue.length;++i){

subValue=value[i];

fullSubName=name+"["+i+"]";

innerObj={};

innerObj[fullSubName]=subValue;

query+=param(innerObj)+"

}elseif(valueinstanceofObject){

for(subNameinvalue){

subValue=value[subName];

fullSubName=name+"["+subName+"]";

innerObj={};

innerObj[fullSubName]=subValue;

query+=param(innerObj)+"

}elseif(value!==undefinedvalue!==null){

query+=encodeURIComponent(name)+"="+encodeURIComponent(value)+"

returnquery.lengthquery.substr(0,query.length-1):query;

$httpProvider.defaults.transformRequest=[function(data){

returnangular.isObject(data)String(data)!=="[objectFile]"param(data):data;

}]);

在構(gòu)建app時(shí)直接重寫$h

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論