面試問題及其解析:
1.后台數據如何傳送到前端
兩種方法:get/post(最常用的兩種HTTP方法,其實還有head、put、delete、options)
HTTP:超文本傳輸協議,保證客戶機與服務器之間的通信(三次握手)
GET-從指定的資源請求數據(如百度搜索)
請注意,查詢字符串(名稱/值對)是在 GET 請求的 URL 中發送的:
/test/demo_form.asp?name1=value1&name2=value2
特性:
- GET 請求可被緩存
- GET 請求保留在瀏覽器歷史記錄中
- GET 請求可被收藏為書簽
- GET 請求不應在處理敏感數據時使用
- GET 請求有長度限制
- GET 請求只應當用於取回數據
POST-向指定的資源提交要被處理的數據(如提交表單)
請注意,查詢字符串(名稱/值對)是在 POST 請求的 HTTP 消息主體中發
送的:
POST /test/demo_form.asp HTTP/1.1 Host: w3schools.com name1=value1&name2=value2
特性:
- POST 請求不會被緩存
- POST 請求不會保留在瀏覽器歷史記錄中
- POST 不能被收藏為書簽
- POST 請求對數據長度沒有要求
具體請看下表:

其他方法:


在angularjs中的實戰應用:
首先,你的后台要有相應的支持接口api,其中定義了接口類型(get/post)及其使用方法

一般我們會用到接口測試工具Postman

然后在angular的src/app/index.api.js文件中,定義前端與后台接口的對接方式
首先定義一個factory,其中提供了前端與后台對接的一些方法
(factory方式創建的服務,作用就是返回一個有屬性有方法的對象。相當於:var f = myFactory();)

api定義:

實際項目中調用:

(中間的function即為fb)
注意一開始要在開頭注入(dataService依賴

過程總結:后台(服務器)定義Http請求方法[定義http請求]
—>前端api.js文件中定義api service方法並注入$http依賴[定義api服務]
—>在方法中創建api service返回對象,以及定義基地址[定義端口和返回值]
—>為其返回對象綁定一個又一個http方法(get/post),其中定義它的url、請求頭、回調函數、異常處理等等[定義請求函數]
—>在項目中通過注入api service方法依賴調用api,從而成功與后台對接[調用函數]
(回調函數解釋:你到一個商店買東西,剛好你要的東西沒有貨,於是你在店員那里留下了你的電話,過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個例子里,你的電話號碼就叫回調函數,你把電話留給店員就叫登記回調函數,店里后來有貨了叫做觸發了回調關聯的事件,店員給你打電話叫做調用回調函數,你到店里去取貨叫做響應回調事件。回答完畢。
作者:常溪玲
鏈接:https://www.zhihu.com/question/19801131/answer/13005983
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。)
