Vue中XMLHttpRequest的使用方法詳解
Vue中使用XMLHttpRequest(XHR)來獲取數(shù)據(jù)的方式與傳統(tǒng)的HTML頁面相同。以下是Vue中XMLHttpRequest的詳細使用方法:
1.創(chuàng)建XMLHttpRequest對象
var xhr = new XMLHttpRequest();
2.設置請求參數(shù)
xhr.open('GET/POST', url, true); //第三個參數(shù)是是否異步請求,默認為true3.監(jiān)聽狀態(tài)變化
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
//請求成功
}
}4.發(fā)送請求
xhr.send(data); //data是請求參數(shù),可以是字符串、FormData等
5.獲取響應數(shù)據(jù)
//String類型,返回的響應數(shù)據(jù),如果響應內(nèi)容類型是json,則需要解析 xhr.responseText //XMLDocument類型,返回XML格式的響應數(shù)據(jù) xhr.responseXML
在Vue中,可以將XHR封裝在methods中的方法里,然后在Vue實例中調(diào)用該方法來實現(xiàn)數(shù)據(jù)的獲取和渲染。以下是一個簡單的例子:
<template>
<div>
<ul>
<li v-for="item in list" :key="item.id">{{item.title}}</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
list: []
}
},
methods: {
getList() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://jsonplaceholder.typicode.com/todos', true);
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
this.list = JSON.parse(xhr.responseText);
}
}.bind(this);
xhr.send();
}
},
mounted() {
this.getList();
}
}
</script>XMLHttpRequest 是怎么回事
XMLHttpRequest(XHR)底層是基于HTTP協(xié)議實現(xiàn)的。 XMLHttpRequest對象有一個readyState屬性,表示XMLHttpRequest對象的狀態(tài)。
- 當readyState為0時,XMLHttpRequest對象已經(jīng)創(chuàng)建,但還未初始化。
- 當readyState為1時,XMLHttpRequest對象已經(jīng)調(diào)用open()方法,但還未發(fā)送請求。
- 當readyState為2時,XMLHttpRequest對象已經(jīng)發(fā)送請求,但還未接收到響應。
- 當readyState為3時,XMLHttpRequest對象已經(jīng)接收到部分響應數(shù)據(jù)。
- 當readyState為4時,XMLHttpRequest對象已經(jīng)接收到全部響應數(shù)據(jù)并解析完畢。
XMLHttpRequest對象還有一個status屬性,表示HTTP響應狀態(tài)碼。常見的HTTP狀態(tài)碼有200表示請求成功,404表示請求的資源未找到,500表示服務器端內(nèi)部錯誤等。
當XMLHttpRequest對象接收到HTTP響應時,客戶端腳本會根據(jù)響應頭中的Content-Type字段來判斷響應內(nèi)容的類型。
- 如果Content-Type為text/xml,客戶端腳本可以使用responseXML屬性來獲取XML格式的響應數(shù)據(jù)。
- 如果Content-Type為text/plain或application/json,客戶端腳本可以使用responseText屬性來獲取純文本格式的響應數(shù)據(jù),然后解析成JSON對象。
到此這篇關于Vue中XMLHttpRequest的使用方法詳解的文章就介紹到這了,更多相關Vue XMLHttpRequest內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
一文詳解如何在Vue網(wǎng)站中實現(xiàn)多語言支持
在當今全球化的互聯(lián)網(wǎng)環(huán)境中,為網(wǎng)站提供多語言支持已成為提升用戶體驗和擴大受眾范圍的關鍵策略,本文為大家介紹了如何在Vue網(wǎng)站中實現(xiàn)多語種支持功能,有需要的可以了解下2025-03-03
electron-vue利用webpack打包實現(xiàn)多頁面的入口文件問題
項目需要在electron的項目中新打開一個窗口,利用webpack作為靜態(tài)資源打包器,發(fā)現(xiàn)在webpack中可以設置多頁面的入口,今天來講一下我在electron中利用webpack建立多頁面入口的踩坑經(jīng)驗,需要的朋友可以參考下2019-05-05
如何解決d3.event在v7版本無效影響zoom拖拽縮放問題
這篇文章主要介紹了如何解決d3.event在v7版本無效影響zoom拖拽縮放問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
vue執(zhí)行配置選項npm?run?serve的本質(zhì)圖文詳解
本地開發(fā)一般通過執(zhí)行npm run serve命令來啟動項目,那這行命令到底存在什么魔法?下面這篇文章主要給大家介紹了關于vue執(zhí)行配置選項npm?run?serve的本質(zhì)的相關資料,需要的朋友可以參考下2023-05-05

