Vue-Resource基础介绍

Vue-Resource基础介绍

vue-resource的请求API是按照REST风格设计的,它提供了7种请求API:

  • get(url, [options])
  • head(url, [options])
  • delete(url, [options])
  • jsonp(url, [options])
  • post(url, [body], [options])
  • put(url, [body], [options])
  • patch(url, [body], [options])
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-resource</title>
   <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  <script src="../../node_modules/"></script>
  <script src="../../node_modules/vue-resource/dist/vue-resource.js"></script>
</head>
<body>
<div id="app" class="container">
  <h2>vue-resource插件讲解</h2>
  <a href="javascript:;" class="btn btn-primary" @click="get">发送Get请求</a>
  <a href="javascript:;" class="btn btn-primary" @click="post">发送Post请求</a>
  <a href="javascript:;" class="btn btn-primary" @click="jsonp">发送Jsonp请求</a>
  <a href="javascript:;" class="btn btn-primary" @click="http">发送htttp请求</a>
</div>
<script type="text/javascript">
  new Vue({
    el: "#app",
    data: {

    },
    mounted: function () {
      // 全局拦截器
      Vue.http.interceptors.push(function (request, next) {
        console.log("request init");
        next(function (response) {
          console.log("response init.");
          return response;
        });
      });
    },
    http:{
      // 对全局路径的配置
      root: "api/"
    },
    methods: {
      get: function () {
        this.$http.get("http://www.imooc.com/course/AjaxCourseMembers?ids=796",{
          params: {
            userId: "101"
          },
          headers: {
            token: "abcd"
          }
        }).then(res=>{
          this.msg = res.data;
        },error=>{
          this.msg = error;
        })
      },
      post: function () {
        this.$http.post("package.json",{
          userId: "102"
        },{
          headers:{
            access_token: "abc"
          }
        }).then(function (res) {
            this.msg = res.data;
        });
      },
      jsonp: function () {
        this.$http.jsonp("http://www.imooc.com/course/AjaxCourseMembers?ids=796").then(function (res) {
            this.msg = res.data;
        })
      },
      // 以配置的方式调用
      http: function () {
        this.$http({
          url: "package.json",
          params: {
            userId: "103"
          },
          headers: {
            token: "123"
          },
          timeout: 5,
          before: function () {
            console.log("before init")
          }
        }).then(function (res) {
          this.msg = res.data;
        });
      }
    }
  });
</script>
</body>
</html>