詳解前后端交互 B/S

????????本人才疏學(xué)淺,該文章就談一下我對(duì)前后端交互的理解喂链,如果那些寫得不對(duì)的返十,請(qǐng)各位大神指出來,大家交流學(xué)習(xí)椭微!

一.什么是前后端交互洞坑?

? ? ? ?了解什么是前后端交互之前,我們先了解一下前后端交互有什么作用蝇率。一個(gè)網(wǎng)站不僅僅是只有前端迟杂,還有在后端的數(shù)據(jù)庫和服務(wù)器(網(wǎng)站構(gòu)成如下圖所示),前端頁面上的數(shù)據(jù)不可能完全寫死的本慕,所以前端需要從服務(wù)器動(dòng)態(tài)地獲取數(shù)據(jù)排拷,以便保證前端的靈活性,此時(shí)便需要前后端的交互间狂。


所謂前后端交互攻泼,即前后端交互為前端和后端的互動(dòng),也可以理解為數(shù)據(jù)交互鉴象。前端需要獲取(GET)的數(shù)據(jù)獲取上傳(POST)的數(shù)據(jù)何鸡,要通過 請(qǐng)求 來完成的纺弊,前端發(fā)送請(qǐng)求,后端接收到請(qǐng)求后骡男,便進(jìn)行對(duì)數(shù)據(jù)庫的操作淆游,返回前端所需要的數(shù)據(jù),即可完成來一次前后端的交互隔盛。前后端交互的大致流程如下:

二.實(shí)現(xiàn)前后端交互

? ? ? ?接下來犹菱,則用代碼來實(shí)現(xiàn)前后端交互的過程。該過程用到的工具如下:(1)服務(wù)器我用的是MAMP(我的電腦為Mac吮炕,所以用MAMP腊脱,如果為Windows操作系統(tǒng)則為WAMP),該軟件集成來apache+mysql龙亲,可以很方便搭建服務(wù)器(點(diǎn)我下載MAMP或WAMP)陕凹。(2)我用的編譯軟件是Visual Studio Code,可自行根據(jù)自己的個(gè)人習(xí)慣選擇編譯器鳄炉,我是習(xí)慣使用這個(gè)杜耙。(3)本次實(shí)現(xiàn)用到的是原生的Ajax請(qǐng)求,PHP寫服務(wù)器拂盯。

? ? ? ?1.下載好MAMP或WAMP后佑女,打開軟件,點(diǎn)擊 Start Server?按鈕啟動(dòng)服務(wù),Apache Server和Mysql Server都是綠色的則表明啟動(dòng)成功团驱,如下圖:

啟動(dòng)成功會(huì)自動(dòng)打開摸吠,如看到下圖也說明啟動(dòng)成功了

這時(shí)在瀏覽器直接輸入localhost或者127.0.0.1即可訪問了。

*注意:在開啟MAMP或者WAMP之前店茶,如果自己的電腦之前有安裝過apache或者mysql的蜕便,先去把服務(wù)停掉,不然可能會(huì)因?yàn)槎丝跊_突而造成啟動(dòng)不成功贩幻。

? ? ? ?2.注:這里只是用最簡(jiǎn)單的代碼來演示轿腺。在htdocs或者WWW文件夾(下面一段有介紹)里面新建一個(gè)index.html文件,里面發(fā)送一個(gè)ajax請(qǐng)求丛楚,下面貼出script部分代碼:

<script>

? ? ? ? var xhr = new XMLHttpRequest();//創(chuàng)建ajax對(duì)象

? ? ? ? xhr.open('GET','./server/connect.php');//配置請(qǐng)求信息

? ? ? ? xhr.send();//發(fā)送請(qǐng)求

? ? ? ? xhr.onload = function(){

? ? ? ? ? ? console.log(JSON.parse(xhr.responseText));//接收響應(yīng)

? ? ? ? }

</script>

3.去服務(wù)器的根目錄創(chuàng)建一個(gè)connect.php文件族壳,Mac的在/Applications/MAMP/htdocs這個(gè)路徑下,win的則可以點(diǎn)擊設(shè)置按鈕在里面找到WWW這個(gè)文件夾趣些,htdocs和WWW是默認(rèn)的根目錄仿荆,在不修改的前提下,PHP的文件必須放到這里面坏平,不然無法訪問拢操。PHP的代碼如下:

<?php

? ? //解決中文亂碼

? ? header('content-type:text/html;charset:utf-8;');

? ? //創(chuàng)建連接

? ? $link = mysqli_connect('localhost','root','root','php_demo');

? ? //查詢數(shù)據(jù)庫

? ? $res = mysqli_query($link,'select * from `user`');

? ? //解析結(jié)果

? ? $data = mysqli_fetch_all($res,MYSQLI_ASSOC);

? ? //打印結(jié)果

? ? print_r(json_encode($data));

? ? //關(guān)閉連接

? ? mysql_close($link);

?>

msyqli_connect()里面各個(gè)參數(shù)的含義,(1)第一個(gè)參數(shù)舶替,就是服務(wù)器地址令境,填'localhost'或者'127.0.0.1'。(2)第二個(gè)參數(shù)顾瞪,本地?cái)?shù)據(jù)庫的用戶名舔庶,默認(rèn)是root。(3)第三個(gè)參數(shù)陈醒,本地?cái)?shù)據(jù)庫的密碼惕橙,默認(rèn)也是root。(4)第四個(gè)參數(shù)钉跷,是你要操作的小倉庫弥鹦。如下圖:

4.在瀏覽器中輸入localhost,回車尘应,然后點(diǎn)擊里面的index.html文件惶凝,便會(huì)發(fā)送ajax請(qǐng)求了,這時(shí)可以按下F12案件犬钢,去到控制臺(tái)查看network苍鲜,就看到發(fā)送的connect.php的請(qǐng)求,并且是成功的玷犹,如下圖:


同時(shí)可以看到后端返回來的數(shù)據(jù)混滔,如下圖:

至此,就完成了一次前后端的交互了。當(dāng)然坯屿,這是最簡(jiǎn)單的一次演示油湖,目的就是看清楚前后端是如何交互的,例子當(dāng)然是簡(jiǎn)單明了的好领跛。

三.總結(jié)

? ? ? ?以上就是B/S (Browser/Server)模式下前后端交互的整個(gè)流程啦乏德,在操作的過程中,我以上提到要注意的地方都要特別留意吠昭,按照我寫的來做喊括,就基本上不會(huì)有問題了。好了矢棚,這次就先寫到這里郑什。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蒲肋,隨后出現(xiàn)的幾起案子蘑拯,更是在濱河造成了極大的恐慌,老刑警劉巖兜粘,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件申窘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡孔轴,警方通過查閱死者的電腦和手機(jī)偶洋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來距糖,“玉大人,你說我怎么就攤上這事牵寺『芬” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵帽氓,是天一觀的道長(zhǎng)趣斤。 經(jīng)常有香客問我,道長(zhǎng)黎休,這世上最難降的妖魔是什么浓领? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮势腮,結(jié)果婚禮上联贩,老公的妹妹穿的比我還像新娘。我一直安慰自己捎拯,他們只是感情好泪幌,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般祸泪。 火紅的嫁衣襯著肌膚如雪吗浩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天没隘,我揣著相機(jī)與錄音懂扼,去河邊找鬼。 笑死右蒲,一個(gè)胖子當(dāng)著我的面吹牛阀湿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播品嚣,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼炕倘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了翰撑?” 一聲冷哼從身側(cè)響起罩旋,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎眶诈,沒想到半個(gè)月后涨醋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逝撬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年浴骂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宪潮。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溯警,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狡相,到底是詐尸還是另有隱情梯轻,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布尽棕,位于F島的核電站喳挑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏滔悉。R本人自食惡果不足惜伊诵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望回官。 院中可真熱鬧曹宴,春花似錦、人聲如沸孙乖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至弯屈,卻和暖如春蜗帜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背资厉。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工厅缺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宴偿。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓湘捎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親窄刘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子窥妇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 第一章 http 協(xié)議 ① 學(xué)習(xí)http協(xié)議的目標(biāo) 1. 調(diào)試ajax應(yīng)用程序中"看不見模不著"的錯(cuò)誤 2. ...
    fastwe閱讀 455評(píng)論 0 0
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,212評(píng)論 0 7
  • 這是全棧數(shù)據(jù)工程師養(yǎng)成攻略系列教程的第十期:10 數(shù)據(jù)庫 用MAMP和WAMP搭建Web環(huán)境。 現(xiàn)在人人都有自己的...
    宏倫工作室閱讀 1,324評(píng)論 0 5
  • Ajax和XMLHttpRequest 我們通常將Ajax等同于XMLHttpRequest娩践,但細(xì)究起來它們兩個(gè)是...
    changxiaonan閱讀 2,240評(píng)論 0 2
  • chatpage web應(yīng)用 由于上班時(shí)就坐在領(lǐng)導(dǎo)眼皮底下活翩,玩手機(jī)不方便,而網(wǎng)頁版的聊天軟件如微信甚至有道云筆記都...
    螞蟻不排隊(duì)閱讀 750評(píng)論 0 0