瀏覽器和伺服器之間的通訊 ajax axios 介面 介面文件
以咱們用的最多的瀏覽器為例,和伺服器通訊的過程就像聊微信?
-
瀏覽器:輸入URL地址-->請求
-
伺服器:接收請求並返回對應的資源-->響應
-
瀏覽器:接收並解析響應內容
-
可以在瀏覽器開發者介面的
network
分類檢視
URL:
協議名:
-
http:// ,https://(會加密,安全一些)
-
協議是網路協議的簡稱,用來保證通訊的雙方能讀懂彼此傳送過來的訊息內容。
主機:(域名)
-
主機指的是在網際網路(區域網)中提供服務的裝置,可以通過ip或者域名訪問
-
如果訪問的是域名:dns伺服器解析--》ip地址
埠號
-
埠號是 0 - 65535 之間的整數
-
計算機內部服務和外部通訊的 虛擬通道
-
一個埠一次只能被一個服務佔用(做核酸?)
-
http預設的埠是80,可以省略不寫
-
https預設的埠是443
-
使用XMLHttpRequest非同步物件和伺服器通訊。
-
不重新重新整理頁面的情況下與伺服器通訊,交換資料,或更新頁面
-
是否和伺服器互動?network頁面確認
-
是否重新載入頁面?
使用ajax
和伺服器通訊時,被請求的URL地址,叫做資料介面(介面,API介面)
-
ajax
請求的伺服器一般稱之為:介面伺服器 -
介面伺服器一般提供操縱伺服器資料的一系列方法
-
呼叫(請求)介面有點類似於呼叫後端封裝好的函式
-
工作中介面一般由後端工程師編寫,並提供介面文件指導呼叫
介面文件:
-
作用:
-
指導前端開發者如何和介面伺服器通訊
-
-
文件內容:
-
伺服器地址
-
請求的方法
-
有了這兩個就可以用
ajax
和伺服器互動
-
-
根據需求可能會有更多的資訊:
-
介面引數
-
返回值格式
-
額外的設定等...
-
-
<body>
<input type="text" class="ipt" placeholder="請輸入查詢的城市" />
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
document.querySelector( '.ipt').onkeyup = function (e) {
// 限制回車觸發
if (e.keyCode !== 13) return
const city = this.value.trim()
// 內容非空判斷
if (!city) {
return alert('請輸入查詢的城市')
}
// ajax前後端互動
axios({
url: `http://ajax-api.itheima.net/api/weather?city=${city}`,
method: 'get',
}).then((res) => {
console.log(res)
if (res.data.data.errcode === 100) {
alert('該城市未得到天氣預報')
} else {
alert(res.data.data.data[0].wea)
}
})
}
</script>
</body>
程式碼解析:
-
匯入了axios網路請求庫
-
在輸入框按下回車,並且內容不為空時和伺服器互動-->請求
-
url地址就是伺服器的資源地址
-
-
伺服器內容響應回來之後觸發then-->響應
-
將獲取到的響應內容設定給then中回撥函式的引數
-
Ajax
是一種技術,可以在不重新整理瀏覽器的情況下和伺服器通訊 -
原生的寫法較為繁瑣,就有了一些封裝好的請求庫,可以簡化這一操作
-
axios
是目前最為流行的請求庫,在瀏覽器端是基於Ajax
封裝 -
ajax
是技術,有原生的寫法--->較為繁瑣 -
axios
-->庫
,簡化ajax
的呼叫
-
url?key=value&key2=value2
-
axios.get('url',{params:{key:value}})