1. 程式人生 > >原生js詳解ajax請求

原生js詳解ajax請求

前端請求服務端資源利用ajax進行請求,通常可以藉助jquery等第三方庫完成ajax的請求,此處將詳解原生ajax請求:

var xhr = new XMLHttpRequest()
xhr.open('GET','./api',false)
xhr.onreadystatechange = function(){
  // 非同步執行
  if(xhr.readyState == 4){
    if(xhr.status == 200){
      console.log(xhr.responseText)
    }
  }
}
xhr.send(null)

上述程式碼是原生js完成ajax請求原理。

xhr.readyState有5個狀態值:

0-(未初始化)還沒有呼叫send()方法;

1-(載入)已呼叫send()方法,正在傳送請求;

2-(載入完成)send()方法執行完成,已經接收到全部相應內容;

3-(互動)正在解析響應內容;

4-(完成)響應內容解析完成,可以在客戶端呼叫。

xhr.status有4個狀態值:

2xx - 表示成功處理請求。如200;

3xx - 需要重定向,瀏覽器直接跳轉;

4xx - 客戶端請求錯誤,如404;

5xx - 服務端錯誤。

以上,原生js ajax請求的具體內容。本文結。

相關推薦

原生jsajax請求

前端請求服務端資源利用ajax進行請求,通常可以藉助jquery等第三方庫完成ajax的請求,此處將詳解原生ajax請求:var xhr = new XMLHttpRequest() xhr.open('GET','./api',false) xhr.onreadystate

使用原生JS發送AJAX請求(XML,JSON解析)

status quest chan ldoc text nbsp 字符 tco send mybutton.addEventListener(‘click‘, (e) => { let request = new XMLHttpRequest() r

無線隨機運動-原生JS

//封裝運動函式; function getStylecss(obj,oStyle){ if(obj.currentStyle){ return obj.currentStyle[oStyle]; }else{

原生js封裝的ajax請求

function ajax(json){     var xhr = null;     if(window.XMLHttpRequest){         xhr = new XMLHttpRequest();     }else{         xhr = new A

Web請求中的DNS域名解析

返回 .com 承擔 接受 性能 出現 感覺 技術 image   當我們打開瀏覽器,輸入一個URL去請求我們需要的資源,但是URL是需要解析成對應的IP地址才能與遠程主機建立連接,如何將URL解析成IP就是DNS的工作範疇,即使作為開發人員,這個過程我們也感覺不到,但是它

[js高手之路]深入淺出webpack教程系列2-配置文件webpack.config.js

基本用法 tle webpack 函數 ges 配置 ref 高手之路 pack 接著上文,重新在webpack文件夾下面新建一個項目文件夾demo2,然後用npm init --yes初始化項目的package.json配置文件,然後安裝webpack( npm inst

[js高手之路]深入淺出webpack教程系列3-配置文件webpack.config.js(下)

json 學習 所在 npm chunk target get lan cnblogs 本文繼續接著上文,繼續寫下webpack.config.js的其他配置用法. 一、把兩個文件打包成一個,entry怎麽配置? 在上文中的webpack.dev.config.js中,用數

lazyload.js

django kit 圖片 eight 檢查 web bow failure 加載速度 簡介 lazyload.js用於長頁面圖片的延遲加載,視口外的圖片會在窗口滾動到它的位置時再進行加載,這是與預加載相反的。 優點: 它可以提高頁面加載速度; 在某些情況清晰它

JS-算數運算符"+"

沒有 strong fine span 也會 結果 結合 運算符和 布爾    二元加法運算符“+”可以對兩個數字做加法,也可以做字符串連接操作:   當兩個操作數都是數字或都是字符串的時候,計算結果是顯而易見的。然而對於其他情況來說,則要進行一些必要的類型轉換,並且運算符

vue-cli中的ESlint配置文件eslintrc.js

nds str -a vsc == 環境 出錯 allow tom 本文講解vue-cli腳手架根目錄文件.eslintrc.js eslint簡介 eslint是用來管理和檢測js代碼風格的工具,可以和編輯器搭配使用,如vscode的eslint插件 當有不

在vue-cli中使用mock.js

r.js The sage eve conf url RoCE code color 引包1. npm install mockjs --save-dev2. npm install axios --save(axios使用不再講) 修改配置3. 在config文件夾

require.js -

插件 com 配置 return seconds bsp jquer http 就會 測試結構如下 index.html 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <he

HTTP 2 -請求 響應 快取

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

JS實現併發Ajax請求

問題:有A、B、C三個請求,C請求需要A、B請求獲取到的資料,如何解決 此前碰到這類問題都是直接改為序列解決,先獲取到A然後A的回撥呼叫B,B再呼叫C。最近發現瞭解決方法: JQ: jq1.5版本之後重寫了AJAX,並且新增了一個新功能:deferred物件 $.when(

Http請求中Content-Type講解以及在Spring MVC中的應用

activit allow 視頻 標註 範圍 password length ted back 詳解Http請求中Content-Type講解以及在Spring MVC中的應用 引言: 在Http請求中,我們每天都在使用Content-type來指定不同格式的請求信息,但是

tp5中前端js程式碼中ajax請求url問題

請注意: 在tp5框架中,js程式碼不能使用全域性函式!所以試圖使用函式{:url()}是解決不了問題的! 在社群中發帖諮詢,直接使用相對地址即可! 程式碼如下: type:'get', url:'alertinfo/drawing', data: "message="+start.

JS Cookie, LocalStorage 與 SessionStorage

基本概念 Cookie Cookie 是小甜餅的意思。顧名思義,cookie 確實非常小,它的大小限制為4KB左右。它的主要用途有儲存登入資訊,比如你登入某個網站市場可以看到“記住密碼”,這通常就是通過在 Cookie 中存入一段辨別使用者身份的資料來實現的。 localStorage

JavaScript:使用原生JS封裝一個ajax相容性方法

ajax請求過程: 需要有個裝置的支援,就是瀏覽器,沒瀏覽器ajax是發不出去的。 需要有一個ajax物件。 規定請求的方式,獲取誰家的資料。 ajax.open(method,url,true)初始化請求方式、請求資料地址、選擇非同步(true)還是同步(fal

Javascript模板引擎mustache.js

mustache.js是一個簡單強大的Javascript模板引擎,使用它可以簡化在js程式碼中的html編寫,壓縮後只有9KB,非常值得在專案中使用。本文總結它的使用方法和一些使用心得,內容不算很高深,純粹是入門內容,看看即可。不過要是你還沒有用過此類的javascript引

HTTP--Http請求(四)

HTTP報文 1.用於HTTP協議互動的資訊被稱為HTTP報文。請求端(客戶端)的HTTP報文叫做請求報文,響應端(伺服器端)的叫做響應報文。HTTP報文字身是由多行(用CR+LF作換行符)資料構成的字串文字; 一.瀏覽器的http請求都發送了什麼? 1.說明:一個完整的H