###### tags:`AJAX` # AJAX - 1.透過 XMLHttpRequest 物件跨瀏覽器撈資料 以下為記錄**透過 XMLHttpRequest 物件跨瀏覽器撈資料**方式 1.在HTML檔連結的js檔宣告 `var 變數(自取名) = new XMLHttpRequest();` 2.打開網頁chorme console 輸入自己設的變數名,可以看到相關資料. 這邊我設的是NEWAJAX ### readyState撈資料狀態顯示 **readyState:0** 你已經產生一個新的XMLHttpRequest,但還沒有連結你要撈的資料 ![](https://i.imgur.com/Yt3IZId.jpg) 3.開始寫撈資料語法,語法是 `變數(自取名).open('','',true)` 三個參數個別代表意義是:**格式、撈資料網址、同步或非同步** 常見格式:get(讀取資料)、post(傳送資料倒伺服器)、 這邊讀取網址是使用六角學院線上課程的老師給的範例json url **true**:非同步.**false**:同步 (非同步資料請看另一[章節](https://hackmd.io/KxaZa7V0SLebq2cPvi3kWA)) 4.寫完後再重新整理,打開chorme console看一下XMLHttpRequest狀態 **readyState:1** 你用了open(),但你還沒有把資料傳送過去 注意:這邊可以看到responseText是空值 ![](https://i.imgur.com/znGuHB3.jpg) 5.傳送資料,和json互動,因為我們這邊沒有要改變資料,所以可以傳送空值<kbd>null</kbd> `變數(自取名).send(null)` 6.寫完後再重新整理,打開chorme console看一下XMLHttpRequest狀態, 可以發現出現readyState:4,以及response和responseText都撈到資料. **readyState:4** 你撈到資料了,數據已經完全接收到了 **readyState:3** loading中,資料量較為龐大時出現 **readyState:2** 偵測到你有用send Ps:<kbd>readyState:2</kbd> 沒有截到圖片,因為資料量很少,很快就撈到,直接讀取到<kbd>readyState:4</kbd> ![](https://i.imgur.com/xptsSmL.jpg)