文章目录

  • 快捷方法列表
  • 配置信息命令
  • 响应
  • 源码
  • html中的源码
  • json文件中的源码
  • 结果
  • 分析


  • 版本:vue-resource v1.2.1
  • 作用:

  Vue与后台Api进行交互通常是利用vue-resource来实现的,本质上vue-resource是通过http来完成AJAX请求相应的。

  • 用法:

  Vue实例对象注册this.$http服务,可以发送HTTP请求。解析请求所返回的结果。此外,Vue实例将会自定绑定到this所在的回调函数中。

{
  // GET /someUrl
  this.$http.get('/someUrl').then(response => {
    // success callback
  }, response => {
    // error callback
  });
}

快捷方法列表

  • get(url, [config])
  • head(url, [config])
  • delete(url, [config])
  • jsonp(url, [config])
  • post(url, [body], [config])
  • put(url, [body], [config])
  • patch(url, [body], [config])

配置信息命令

参数

类型

描述

url

string

发送URL请求

body

ObjectFormDatastring

作为请求主体发送的数据

headers

Object

将作为HTTP请求标头发送的Headers对象

params

Object

要作为URL参数发送的参数对象

method

string

HTTP方法(例如GET、POST、…)

responseType

string

响应主体的类型(例如文本、blob、json、…)

timeout

number

请求超时(以毫秒为单位)(0表示没有超时)

credentials

boolean

指示是否应该使用凭据发出跨站点访问控制请求

emulateHTTP

boolean

使用HTTP POST发送PUT、PATCH和DELETE请求,并设置X-HTTP-Method-Override标头

before

function(request)

回调函数,用于在发送请求对象之前修改它

uploadProgress

function(event)

处理上传进程的回调函数

downloadProgress

function(event)

回调函数来处理下载的进度

响应

属性

类型

描述

url

string

返回原始的URL

body

Object, Blob, string

响应体

headers

Header

响应头对象

ok

boolean

HTTP状态码在200到299之间

status

number

HTTP状态码的响应

statusText

string

响应的HTTP状态文本

方法

类型

描述

text()

Promise

将主体解析为字符串

json()

Promise

将主体解析为解析的JSON对象

blob()

Promise

将主体解析为Blob对象

源码

  下面我将以get请求访问json文件的方式来展示vue-resource的用法。

html中的源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-router</title>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="item in list">{{item.name}}</li>
        </ul>
        <button @click="getData">get请求</button>
    </div>
<script src="../../../js/vue/vue/1.0/vue.js"></script>
<script src="../../../js/vue/vue-resource/1.2.1/vue-resource.js"></script>
<script type="application/javascript">
    var vm = new Vue({
        el:'#app'
        ,data:{
            list:[]
        }
        ,methods:{
            getData(){
                var url = '../json/get.json';
                this.$http.get(url).then(function(res){
                    var body = res.body;
                    if(body.status){
                        alert('请求出错!');
                    }
                    this.list = body.message;
                });
            }
        }
    });
</script>
</body>
</html>

json文件中的源码

{
  "status":0
  ,"message":[
    {
      "id":1
      ,"name":"张三"
    }
    ,{
      "id":2
      ,"name":"李四"
    }
  ]
}

结果

vue3 axios response没有status返回 vue中response_vue

分析

  上面的代码实现的功能是在页面中通过点击button按钮来触发一个getDataclick响应事件,而该事件实现的功能是发送一个url请求(尽管说其请求的是本地的json文件数据,不过其请求后台的方法和该方法是一模一样的,所以说其用于请求后台的数据也是同样的用法。),该请求返回url链接所响应的数据。而该返回数据将会在then()回调函数中进行相应的处理,比如说我们的json文件中就返回了status响应状态码,其中0代表成功,否则失败。而一旦响应成功,则调用body.message,将相应的数据主体绑定到data数据域中的list中,由于list中的数据有变动,因而Vue会自定的刷新liv-for中的页面信息,进而完成页面信息的更新操作。