1. 程式人生 > 其它 >瀏覽器和伺服器之間的通訊 ajax axios 介面 介面文件

瀏覽器和伺服器之間的通訊 ajax axios 介面 介面文件

瀏覽器和伺服器通訊過程

以咱們用的最多的瀏覽器為例,和伺服器通訊的過程就像聊微信?

  1. 瀏覽器:輸入URL地址-->請求

  2. 伺服器:接收請求並返回對應的資源-->響應

  3. 瀏覽器:接收並解析響應內容

  4. 可以在瀏覽器開發者介面的network分類檢視

URL:這個地址叫做統一資源定位器(URL是指定在 Internet 上可以找到資源的位置的文字字串

        協議名:

  1. http:// ,https://(會加密,安全一些)

  2. 協議是網路協議的簡稱,用來保證通訊的雙方能讀懂彼此傳送過來的訊息內容。

       主機:(域名)

    1. 主機指的是在網際網路(區域網)中提供服務的裝置,可以通過ip或者域名訪問

    2. 如果訪問的是域名:dns伺服器解析--》ip地址

      埠號

      1. 埠號是 0 - 65535 之間的整數

      2. 計算機內部服務和外部通訊的 虛擬通道

      3. 一個埠一次只能被一個服務佔用(做核酸?)

      4. http預設的埠是80,可以省略不寫

      5. https預設的埠是443,可以省略不寫

Ajax概念:ajax的特點:不重新重新整理頁面的情況下與伺服器通訊,交換資料,或更新頁面

    • 使用XMLHttpRequest非同步物件和伺服器通訊。

       

    • 重新重新整理頁面的情況下與伺服器通訊,交換資料,或更新頁面

測試:

  1. 是否和伺服器互動?network頁面確認

  2. 是否重新載入頁面?

 

介面:

使用ajax伺服器通訊時,被請求的URL地址,叫做資料介面(介面,API介面)

  1. ajax請求的伺服器一般稱之為:介面伺服器

  2. 介面伺服器一般提供操縱伺服器資料的一系列方法

  3. 呼叫(請求)介面有點類似於呼叫後端封裝好函式

  4. 工作中介面一般由後端工程師編寫,並提供介面文件指導呼叫

 

介面文件:

  1. 作用:

    1. 指導前端開發者如何和介面伺服器通訊

  2. 文件內容:

    1. 伺服器地址

    2. 請求的方法

      1. 有了這兩個就可以用ajax和伺服器互動

    3. 根據需求可能會有更多的資訊:

      1. 介面引數

      2. 返回值格式

      3. 額外的設定等...

<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>

 

程式碼解析:

  1. 匯入了axios網路請求庫

  2. 在輸入框按下回車,並且內容不為空時和伺服器互動-->請求

    1. url地址就是伺服器的資源地址

  3. 伺服器內容響應回來之後觸發then-->響應

  4. 將獲取到的響應內容設定給then中回撥函式的引數

 

axios介紹及get請求

概念:axios是一個網路請求庫瀏覽器端是基於ajax封裝的

  1. Ajax是一種技術,可以在不重新整理瀏覽器的情況下和伺服器通訊

  2. 原生的寫法較為繁瑣,就有了一些封裝好的請求庫,可以簡化這一操作

  3. axios是目前最為流行的請求庫,在瀏覽器端是基於Ajax封裝

    1. ajax是技術,有原生的寫法--->較為繁瑣

    2. axios-->,簡化ajax的呼叫

 

get請求如果要傳遞引數,是拼接在url的末尾 或者在params{}中寫

  1. url?key=value&key2=value2

  2. axios.get('url',{params:{key:value}})