1 回答

TA貢獻(xiàn)1824條經(jīng)驗 獲得超5個贊
一句話:
HTTP(s)
協(xié)議
所謂接口就是 HTTP(S) 的URL + 參數(shù) + 返回的結(jié)果
前端發(fā)起請求并等待服務(wù)器響應(yīng)(返回結(jié)果)
1、原始的HTML方式是表單
<form method="post/get"> <input...> ... </form>
這種方式在submit(提交表單)之后,瀏覽器會發(fā)送一個HTTP(GET/POST)請求給服務(wù)器(后端)
服務(wù)器處理完后返回結(jié)果 頁面 ,瀏覽器重新顯示新的頁面,所以會刷新
2、現(xiàn)在流行的方式是AJAX
已jquery為例,$.get/post/ajax 之后也會給服務(wù)器發(fā)送HTTP請求
服務(wù)器處理完后返回結(jié)果(比如json)而非整個頁面,所以是 無刷新 的。
后端等待前端請求,處理請求后把處理結(jié)果返回給前端
對于后端來說,原始的表單方式和AJAX發(fā)來的請求是一樣的,
唯一區(qū)別就是返回的結(jié)果類型,
前者要返回整個新頁面的HTML代碼,
而后者只需要返回約定好的類型數(shù)據(jù)(比如json:{result:true/false, msg: 'blabla'})
總結(jié)
前后端交互可以 類比 一下函數(shù)調(diào)用(作為前端應(yīng)該知道javascript函數(shù)吧...)
后端負(fù)責(zé)定義好函數(shù):
function test(a, b){ return a + b; }
前端負(fù)責(zé)調(diào)用這個后端提供的函數(shù)(接口):
r = test(1,2) alert('1+2=' + r);
類比:
$.post({ url:'test', data:'a=1&b=2', success:function(data,status){ alert('1+2=' + data); }, })
前后端的交互就跟函數(shù)調(diào)用一樣(如果你不追究瀏覽器后臺的HTTP處理的話)
嗯,就是這樣!前端填入?yún)?shù)并調(diào)用接口,后端處理然后返回結(jié)果,前端再處理后端返回的這個結(jié)果!
END!
添加回答
舉報