Vue中XMLHttpRequest的使用方法详解
Vue中使用XMLHttpRequest(XHR)来获取数据的方式与传统的HTML页面相同。以下是Vue中XMLHttpRequest的详细使用方法:
1.创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
2.设置请求参数
xhr.open('GET/POST', url, true); //第三个参数是是否异步请求,默认为true3.监听状态变化
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
//请求成功
}
}4.发送请求
xhr.send(data); //data是请求参数,可以是字符串、FormData等
5.获取响应数据
//String类型,返回的响应数据,如果响应内容类型是json,则需要解析 xhr.responseText //XMLDocument类型,返回XML格式的响应数据 xhr.responseXML
在Vue中,可以将XHR封装在methods中的方法里,然后在Vue实例中调用该方法来实现数据的获取和渲染。以下是一个简单的例子:
<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协议实现的。 XMLHttpRequest对象有一个readyState属性,表示XMLHttpRequest对象的状态。
- 当readyState为0时,XMLHttpRequest对象已经创建,但还未初始化。
- 当readyState为1时,XMLHttpRequest对象已经调用open()方法,但还未发送请求。
- 当readyState为2时,XMLHttpRequest对象已经发送请求,但还未接收到响应。
- 当readyState为3时,XMLHttpRequest对象已经接收到部分响应数据。
- 当readyState为4时,XMLHttpRequest对象已经接收到全部响应数据并解析完毕。
XMLHttpRequest对象还有一个status属性,表示HTTP响应状态码。常见的HTTP状态码有200表示请求成功,404表示请求的资源未找到,500表示服务器端内部错误等。
当XMLHttpRequest对象接收到HTTP响应时,客户端脚本会根据响应头中的Content-Type字段来判断响应内容的类型。
- 如果Content-Type为text/xml,客户端脚本可以使用responseXML属性来获取XML格式的响应数据。
- 如果Content-Type为text/plain或application/json,客户端脚本可以使用responseText属性来获取纯文本格式的响应数据,然后解析成JSON对象。
到此这篇关于Vue中XMLHttpRequest的使用方法详解的文章就介绍到这了,更多相关Vue XMLHttpRequest内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
electron-vue利用webpack打包实现多页面的入口文件问题
项目需要在electron的项目中新打开一个窗口,利用webpack作为静态资源打包器,发现在webpack中可以设置多页面的入口,今天来讲一下我在electron中利用webpack建立多页面入口的踩坑经验,需要的朋友可以参考下2019-05-05
如何解决d3.event在v7版本无效影响zoom拖拽缩放问题
这篇文章主要介绍了如何解决d3.event在v7版本无效影响zoom拖拽缩放问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-03-03


最新评论