这是一个别人封装好的http请求库,使用时需要我们引入才能够使用。因为个人比较喜欢用这种方法请求数据所以放到第一位
- let 新的对象变量 = axios.create({
- baseURL: "公共前缀",
- timeout: 10000, // 超时时间
- // headers: {}
- })
-
- // 未来使用axios时就不能用axios,要用新的对象
- 新的对象变量.get()
- 新的对象变量.post()
如果我们每个请求都进行错误处理,而且大部分的错误都是相同的,每次都写catch很麻烦
axios.get().then().catch()
如果遇到这种情况,我们就可以用axios提供的响应拦截器 解决这个问题。如果使用的是axios.create创建的实例对象,那么设置拦截器也要用新的实例对象设置。
- // 在代码的最上面 请求发起前
- axios.interceptors.response.use((response) => {
- // 请求成功时执行的函数 response就是请求到的结果
- return response
- }, (error) => {
- // 请求错误时的函数
- // 对公共错误进行处理
- if (error.code === "xxx") {
- alert('什么什么错误,请修复')
- }
- return Promise.reject(error)
- })
GET
- axios.get(url, {
- params: {
- 参数名: 参数值,
- 参数名2: 参数值2
- }
- }).then(res => {
- // res.data就是对应的结果
- })
POST
- axios.post(url, {
- 参数名1: 参数值1,
- 参数名2: 参数值2
- }).then(res => {
- // res.data就是我们的结果
- // 注意可以进行链式调用
- // 继续在括号后面.then或者.catch
- })
以上两种为常用方法,剩下的很少用到所以这里我就不多巴巴了,详情参考官方文档
要发起ajax请求有很多方法,原生xhr或者fetch都可以,我们先了解xhr
- let xhr = new XMLHttpRequest()
-
- xhr.onload = function () {
- // 我们请求到的结果,就是xhr.response 或者 xhr.responseText
- }
-
- xhr.open("请求方法", "请求URL?请求参数")
- xhr.send()
我们获取到的response是一个JSON字符串,使用时需要将其转换为JSON对象。
JSON.parse(xhr.response)
ES6中出现的替代xhr对象进行异步请求的一个对象。它默认是基于promise解决异步操作。fetch的用法很简单
- fetch("请求地址?参数")
- .then(res => res.json()) // 把请求到的结果转换为JSON对象 在我们接下来的例子中,这一步是完全固定的
- .then(data => {
- // data就是我们请求到的结果
- })
- fetch(请求地址, {
- method: "", // GET POST PATCH PUT DELETE
- body: JSON.stringify({}), // 要传递数据 GET和delete不能写body,
- headers: {
- "Content-Type": "application/json"
- }
- }).then(res => res.json()).then(data => {
- // data就是请求到的数据
-
- })
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行