欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:ajax 學(xué)習(xí) 筆記 JSON

柚子快報(bào)激活碼778899分享:ajax 學(xué)習(xí) 筆記 JSON

http://yzkb.51969.com/

HTTP(hypertext transport protocol)協(xié)議 【超文本傳輸協(xié)議】,協(xié)議詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則。

2.2 HTTP 請(qǐng)求交互的基本過程

前后應(yīng)用從瀏覽器端向服務(wù)器發(fā)送HTTP 請(qǐng)求(請(qǐng)求報(bào)文) 后臺(tái)服務(wù)器接收到請(qǐng)求后, 調(diào)度服務(wù)器應(yīng)用處理請(qǐng)求, 向?yàn)g覽器端返回HTTP響應(yīng)(響應(yīng)報(bào)文) 瀏覽器端接收到響應(yīng), 解析顯示響應(yīng)體/調(diào)用監(jiān)視回調(diào)

2.3 HTTP 請(qǐng)求報(bào)文

重點(diǎn)是格式與參數(shù)

請(qǐng)求行 POST /s?ie=utf-8 HTTP/1.1

請(qǐng)求頭 Host: atguigu.com

cookie: name=guigu

content-type: application/x-www-form-urlencoded

空行

請(qǐng)求體 username=admin&password=admin

2.4 HTTP 響應(yīng)報(bào)文

響應(yīng)行 HTTP/1.1 200 OK

響應(yīng)頭 Content-Type:text/html;charset=utf-8

Content-length:2048

Content-encoding:gzip

空行

響應(yīng)體

2.5 谷歌瀏覽器調(diào)試

F12 打開控制臺(tái) 網(wǎng)絡(luò)欄:network /網(wǎng)絡(luò):這里有網(wǎng)頁加載所有發(fā)送的請(qǐng)求

4. 點(diǎn)擊查看源碼,可以看到完整的請(qǐng)求報(bào)文 和響應(yīng)報(bào)文

載荷:一些參數(shù),老師的在Headers里面,現(xiàn)在分離出來了,如果響應(yīng)有參數(shù),就在“標(biāo)頭”和“預(yù)覽”之間出現(xiàn)

6. '響應(yīng)’欄會(huì)返回頁面的HTML文件

3. 原生AJAX 的基本使用

3.1 安裝node.js

http://nodejs.cn/

3.2 安裝express(服務(wù)端框架)

https://www.expressjs.com.cn/

在編輯器中打開終端,輸入下面的代碼

初始化環(huán)境

npm init --yes

下載express包

npm install express --save

編寫js代碼(自己創(chuàng)建的js文件 ,這里我的是 express_use.js)

// 1. 引入express

const express = require(‘express’);

// 2. 創(chuàng)建應(yīng)用對(duì)象

const app = express();

// 3. 創(chuàng)建路由規(guī)則

// request 是對(duì)請(qǐng)求報(bào)文的封裝

// response 是對(duì)響應(yīng)報(bào)文的封裝

app.get(‘/’, (request, response) => {

// 設(shè)置響應(yīng)

response.send(“Hello Express”);

});

// 4. 監(jiān)聽端口,啟動(dòng)服務(wù)

app.listen(8000, () => {

console.log(“服務(wù)已經(jīng)啟動(dòng), 8000 端口監(jiān)聽中…”);

})

在終端運(yùn)行js程序

node express_use.js

網(wǎng)頁打開 http://127.0.0.1:8000/ 打開控制臺(tái)的網(wǎng)絡(luò),刷新頁面,

3.3 AJAX get案例

創(chuàng)建好文件夾和文件 開始編寫代碼

前端頁面的準(zhǔn)備

Ajax GET 請(qǐng)求

點(diǎn)擊發(fā)送請(qǐng)求

服務(wù)端準(zhǔn)備

// 1. 引入express

const express = require(‘express’);

// 2. 創(chuàng)建應(yīng)用對(duì)象

const app = express();

// 3. 創(chuàng)建路由規(guī)則

app.get(‘/server’, (request, response) => {

// 設(shè)置響應(yīng)頭 設(shè)置允許跨域

response.setHeader(‘Access-Control-Allow-Origin’, ‘*’);

// 設(shè)置響應(yīng)體

response.send(“Hello Ajax”);

});

// 4. 監(jiān)聽服務(wù)

app.listen(8000, () => {

console.log(“服務(wù)已經(jīng)啟動(dòng), 8000 端口監(jiān)聽中…”);

})

3.4 AJAX GET 請(qǐng)求設(shè)置請(qǐng)求參數(shù)

xhr.open(‘GET’, ‘http://127.0.0.1:8000/server?a=100&b=200&c=300’);

3.5 AJAX post案例

前端頁面

Ajax POST 請(qǐng)求

服務(wù)器代碼(修改為需要重啟服務(wù)器)

// 1. 引入express

const express = require(‘express’);

// 2. 創(chuàng)建應(yīng)用對(duì)象

const app = express();

// 3. 創(chuàng)建路由規(guī)則

app.get(‘/server’, (request, response) => {

// 設(shè)置響應(yīng)頭 設(shè)置允許跨域

response.setHeader(‘Access-Control-Allow-Origin’, ‘*’);

// 設(shè)置響應(yīng)體

response.send(“Hello Ajax”);

});

app.post(‘/server’, (request, response) => {

// 設(shè)置響應(yīng)頭 設(shè)置允許跨域

response.setHeader(‘Access-Control-Allow-Origin’, ‘*’);

// 設(shè)置響應(yīng)體

response.send(“Hello Ajax”);

});

// 4. 監(jiān)聽服務(wù)

app.listen(8000, () => {

console.log(“服務(wù)已經(jīng)啟動(dòng), 8000 端口監(jiān)聽中…”);

})

請(qǐng)求體

xhr.send('a=100&b=200&c=300');post設(shè)置請(qǐng)求體 request payload

3.6 AJAX設(shè)置請(qǐng)求頭信息

// 設(shè)置請(qǐng)求體內(nèi)容的類型

xhr.setRequestHeader(‘Content-Type’,‘a(chǎn)pplication/x-www-from-urlencoded’);

// 自定義頭信息

xhr.setRequestHeader(‘name’, ‘lightofD’);

server.js中設(shè)置響應(yīng)頭允許自定義請(qǐng)求頭 post改成all

服務(wù)器代碼:

// 1. 引入express

const express = require(‘express’);

// 2. 創(chuàng)建應(yīng)用對(duì)象

const app = express();

// 3. 創(chuàng)建路由規(guī)則

app.get(‘/server’, (request, response) => {

// 設(shè)置響應(yīng)頭 設(shè)置允許跨域

response.setHeader(‘Access-Control-Allow-Origin’, ‘*’);

// 設(shè)置響應(yīng)體

response.send(“Hello Ajax”);

});

app.all(‘/server’, (request, response) => {

// 設(shè)置響應(yīng)頭 設(shè)置允許跨域

response.setHeader(‘Access-Control-Allow-Origin’, ‘*’);

// 設(shè)置響應(yīng)頭, 設(shè)置允許自定義頭信息

response.setHeader(‘Access-Control-Allow-Headers’,‘*’);

// 設(shè)置響應(yīng)體

response.send(“Hello Ajax”);

});

// 4. 監(jiān)聽服務(wù)

app.listen(8000, () => {

console.log(“服務(wù)已經(jīng)啟動(dòng), 8000 端口監(jiān)聽中…”);

})

3.7 服務(wù)端響應(yīng)JSON數(shù)據(jù)

服務(wù)器代碼

// 1. 引入express

const express = require(‘express’);

// 2. 創(chuàng)建應(yīng)用對(duì)象

const app = express();

// 3. 創(chuàng)建路由規(guī)則

app.all(‘/server’, (request, response) => {

// 設(shè)置響應(yīng)頭, 設(shè)置允許跨域

response.setHeader(‘Access-Control-Allow-Origin’, ‘*’);

// 設(shè)置響應(yīng)頭, 設(shè)置允許自定義頭信息

response.setHeader(‘Access-Control-Allow-Headers’, ‘*’);

// 響應(yīng)一個(gè)數(shù)據(jù)

const data = {

name: ‘a(chǎn)tguigu’

};

// 對(duì) 對(duì)象 進(jìn)行 字符串 轉(zhuǎn)換 ;轉(zhuǎn)換為JSON格式

let str = JSON.stringify(data)

// 設(shè)置響應(yīng)體

response.send(str);

});

// 4. 監(jiān)聽服務(wù)

app.listen(8000, () => {

console.log(“服務(wù)已經(jīng)啟動(dòng), 8000 端口監(jiān)聽中…”);

})

我們的頁面會(huì)接受到一個(gè)字符串

//設(shè)置響應(yīng)體數(shù)據(jù)的類型(自動(dòng)轉(zhuǎn)換)

xhr.responseType = ‘json’;

//設(shè)置之前 我們xhr.response接收到的是服務(wù)器的json格式字符串

//設(shè)置只后 xhr.response自動(dòng)根據(jù)這個(gè)字符串轉(zhuǎn)換為對(duì)象

//當(dāng)然我們也可以手動(dòng)轉(zhuǎn)換

// 1. 手動(dòng)對(duì)數(shù)據(jù)轉(zhuǎn)化 (字符串再轉(zhuǎn)換成json)

let data = JSON.parse(xhr.response); //轉(zhuǎn)換成json

//這個(gè)data 就是字符串對(duì)應(yīng)的對(duì)象了

//調(diào)用其中數(shù)據(jù)格式 data.name

html示例(鍵盤隨意輸入發(fā)送post請(qǐng)求)

JSON

3.8 nodemon自動(dòng)重啟工具

之前我們每次更改服務(wù)器端的代碼都需要重啟服務(wù)器,非常麻煩

有了這個(gè)工具,只要啟動(dòng)一次,我們修改服務(wù)端代碼,保存后自動(dòng)重啟服務(wù)器。

但是啟動(dòng)代碼的方式從 node 文件名 改為nodemon 文件名

安裝

npm install -g nodemon

啟動(dòng)

nodemon .\server.js

啟動(dòng)失敗怎么辦,運(yùn)行下條命令,一定要注意運(yùn)行所在路徑?。?!一定注意路徑!??!cd命令修改到server.js所在目錄

npx nodemon .\server.js

3.9 解決 IE 緩存問題

問題:在一些瀏覽器中(IE),由于緩存機(jī)制的存在,ajax 只會(huì)發(fā)送的第一次請(qǐng)求,剩余多次請(qǐng)求不會(huì)在發(fā)送給瀏覽器而是直接加載緩存中的數(shù)據(jù)。

解決方式:瀏覽器的緩存是根據(jù)url 地址來記錄的,所以我們只需要修改url 地址即可避免緩存問題

xhr.open(‘GET’, ‘http://127.0.0.1:8000/server?t=’+Date.now());

3.10 請(qǐng)求網(wǎng)絡(luò)超時(shí)與網(wǎng)絡(luò)異常

// 超時(shí)設(shè)置 (2秒)

xhr.timeout = 2000;

// 超時(shí)回調(diào)

xhr.ontimeout = function(){

alert(‘網(wǎng)絡(luò)超時(shí),請(qǐng)稍后重試’)

}

// 網(wǎng)絡(luò)異?;卣{(diào)

xhr.onerror = function(){

alert(‘網(wǎng)絡(luò)異常,請(qǐng)稍后重試’)

}

服務(wù)器模擬延遲效果

// 1. 引入express

const express = require(‘express’);

// 2. 創(chuàng)建應(yīng)用對(duì)象

const app = express();

// 3. 創(chuàng)建路由規(guī)則

app.all(‘/server’, (request, response) => {

// 設(shè)置響應(yīng)頭, 設(shè)置允許跨域

response.setHeader(‘Access-Control-Allow-Origin’, ‘*’);

// 設(shè)置響應(yīng)頭, 設(shè)置允許自定義頭信息

response.setHeader(‘Access-Control-Allow-Headers’, ‘*’);

// 響應(yīng)一個(gè)數(shù)據(jù)

setTimeout(()=>{

// 設(shè)置響應(yīng)體

response.send(‘str’);

},3000)

});

// 4. 監(jiān)聽服務(wù)

app.listen(8000, () => {

console.log(“服務(wù)已經(jīng)啟動(dòng), 8000 端口監(jiān)聽中…”);

})

瀏覽器模擬斷網(wǎng)

3.11 取消請(qǐng)求

// 手動(dòng)取消

xhr.abort()

3.12 重復(fù)請(qǐng)求問題

相當(dāng)于一個(gè)小的算法

JSON

發(fā)送

3.13 總結(jié)

XMLHttpRequest():創(chuàng)建 XHR 對(duì)象的構(gòu)造函數(shù) status:響應(yīng)狀態(tài)碼值,如 200、404 statusText:響應(yīng)狀態(tài)文本,如 ’ok‘、‘not found’ readyState:標(biāo)識(shí)請(qǐng)求狀態(tài)的只讀屬性 0-1-2-3-4 onreadystatechange:綁定 readyState 改變的監(jiān)聽 responseType:指定響應(yīng)數(shù)據(jù)類型,如果是 ‘json’,得到響應(yīng)后自動(dòng)解析響應(yīng) response:響應(yīng)體數(shù)據(jù),類型取決于 responseType 的指定 timeout:指定請(qǐng)求超時(shí)時(shí)間,默認(rèn)為 0 代表沒有限制 ontimeout:綁定超時(shí)的監(jiān)聽 onerror:綁定請(qǐng)求網(wǎng)絡(luò)錯(cuò)誤的監(jiān)聽 open():初始化一個(gè)請(qǐng)求,參數(shù)為:(method, url[, async]) send(data):發(fā)送請(qǐng)求 abort():中斷請(qǐng)求 (發(fā)出到返回之間) getResponseHeader(name):獲取指定名稱的響應(yīng)頭值 getAllResponseHeaders():獲取所有響應(yīng)頭組成的字符串 setRequestHeader(name, value):設(shè)置請(qǐng)求頭

4. jQuery 中的AJAX

4.1 get 請(qǐng)求

$.get(url, [data], [callback], [type])

url:請(qǐng)求的URL 地址 data:請(qǐng)求攜帶的參數(shù) callback:載入成功時(shí)回調(diào)函數(shù) type:設(shè)置返回內(nèi)容格式,xml, html, script, json, text, _default

4.2 post請(qǐng)求

$.post(url, [data], [callback], [type])

url:請(qǐng)求的URL 地址 data:請(qǐng)求攜帶的參數(shù) callback:載入成功時(shí)回調(diào)函數(shù) type:設(shè)置返回內(nèi)容格式,xml, html, script, json, text, _default

4.3通用方法

$.ajax({

// url

url: ‘http://127.0.0.1:8000/jquery-server’,

// 參數(shù)

data: {a:100, b:200},

// 請(qǐng)求類型

type: ‘GET’,

// 響應(yīng)體結(jié)果

dataType: ‘json’,

// 成功的回調(diào)

success: function(data){console.log(data);},

// 超時(shí)時(shí)間

timeout: 2000,

// 失敗的回調(diào)

error: function(){console.log(‘出錯(cuò)拉~’);},

// 頭信息

headers: {

c: 300,

d: 400

}

})

5.Axios 發(fā)送 Ajax 請(qǐng)求

5.1 get 請(qǐng)求

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Web前端開發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上前端開發(fā)知識(shí)點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!

如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ⅲ呵岸耍?/p>

更多面試題

**《350頁前端校招面試題精編解析大全》**內(nèi)容大綱主要包括 HTML,CSS,前端基礎(chǔ),前端核心,前端進(jìn)階,移動(dòng)端開發(fā),計(jì)算機(jī)基礎(chǔ),算法與數(shù)據(jù)結(jié)構(gòu),項(xiàng)目,職業(yè)發(fā)展等等

資料獲取方式:點(diǎn)擊藍(lán)色傳送門獲取

default

4.3通用方法

$.ajax({

// url

url: ‘http://127.0.0.1:8000/jquery-server’,

// 參數(shù)

data: {a:100, b:200},

// 請(qǐng)求類型

type: ‘GET’,

// 響應(yīng)體結(jié)果

dataType: ‘json’,

// 成功的回調(diào)

success: function(data){console.log(data);},

// 超時(shí)時(shí)間

timeout: 2000,

// 失敗的回調(diào)

error: function(){console.log(‘出錯(cuò)拉~’);},

// 頭信息

headers: {

c: 300,

d: 400

}

})

5.Axios 發(fā)送 Ajax 請(qǐng)求

5.1 get 請(qǐng)求

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Web前端開發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。

[外鏈圖片轉(zhuǎn)存中…(img-1Tcg3tKE-1712395748555)]

[外鏈圖片轉(zhuǎn)存中…(img-Ivr89Qkz-1712395748555)]

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上前端開發(fā)知識(shí)點(diǎn),真正體系化!

[外鏈圖片轉(zhuǎn)存中…(img-CbHzGhw2-1712395748555)]

由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!

如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲取?。。▊渥ⅲ呵岸耍?/p>

更多面試題

**《350頁前端校招面試題精編解析大全》**內(nèi)容大綱主要包括 HTML,CSS,前端基礎(chǔ),前端核心,前端進(jìn)階,移動(dòng)端開發(fā),計(jì)算機(jī)基礎(chǔ),算法與數(shù)據(jù)結(jié)構(gòu),項(xiàng)目,職業(yè)發(fā)展等等

資料獲取方式:點(diǎn)擊藍(lán)色傳送門獲取

[外鏈圖片轉(zhuǎn)存中…(img-HwDmngKq-1712395748556)]

柚子快報(bào)激活碼778899分享:ajax 學(xué)習(xí) 筆記 JSON

http://yzkb.51969.com/

精彩內(nèi)容

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/18984022.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄