2019-06-08vue-resource实现get,post

2019-06-09  本文已影响0人  啊_6424
虽然现在都用axios,但老师课程里讲了vue-resource,就学习一下吧。

如何使用

 <script src="https://cdn.jsdelivr.net/npm/vue"></script>
  <!-- vue-resource 依赖于 vue ,先引入vue -->
  <!-- this.$http.get, this.$http.post, this.$http.jsonp -->
  <!-- 第一步,导包 -->
  <script src="https://cdn.jsdelivr.net/npm/vue-resource@1.5.1"></script>
......
 <div id="app">
    <input type="button" value="get请求" @click="getInfo">
  </div>
......
new Vue({
  el: "#app",
  methods: {
    getInfo(){
      //第二步,发起相应的请求
      console.log("get请求");
      this.$http.get()
    },
  }
});
那么请求方法里面的格式有时怎样写呢?
url:请求地址:
config:
Parameter Type Description
url string URL to which the request is sent
body Object, FormData, string Data to be sent as the request body
headers Object Headers object to be sent as HTTP request headers
params Object Parameters object to be sent as URL parameters
method string HTTP method (e.g. GET, POST, ...)
responseType string Type of the response body (e.g. text, blob, json, ...)
timeout number Request timeout in milliseconds (0 means no timeout)
credentials boolean Indicates whether or not cross-site Access-Control requests should be made using credentials
emulateHTTP boolean Send PUT, PATCH and DELETE requests with a HTTP POST and set the X-HTTP-Method-Override header
emulateJSON boolean Send request body as application/x-www-form-urlencoded content type
before function(request) Callback function to modify the request object before it is sent
uploadProgress function(event) Callback function to handle the ProgressEvent of uploads
downloadProgress function(event) Callback function to handle the ProgressEvent of downloads
发送请求后,服务器返回来了一些数据,客户端怎么获取呢?通过.then函数

需要记住的是,只要是请求数据后调用.then方法获取返回的数据,则说明该请求方法是用Promise封装的(后期补充,现在能使用就行)。

this.$http.get("http://120.77.181.41:3000/api/getgod?pageIdx=1").then(successCallback,errorCallback);

其中,成功的回调函数是必须写的,失败的回调函数是可选的。

    getInfo(){
      //第二步,发起相应的请求
      console.log("get请求");
      // this.$http.get("http://120.77.181.41:3000/api/getgod?pageIdx=1").then(successCallback,errorCallback);
      this.$http.get("http://120.77.181.41:3000/api/getgod?pageIdx=1").then(function(result){
        console.log(result);
      });
    },
body跟data里的就是返回的数据
再来学习post请求:

注意,有的服务器post只允许表单形式提交。
手动发起的post请求默认没有表单格式,有的服务器是没办法处理的。
我们可以通过post方法的第三个参数 {emulateJSON:true} 设置提交的的内容类型为普通表单数据格式。

    <input type="button" value="post请求" @click="postInfo">
......
 postInfo(){
      console.log("post请求");
      //this.$http.post("http://120.77.181.41:3000/api/addnewscom",{},{}).then(result =>{
      this.$http.post("http://120.77.181.41:3000/api/addnewscom",{},{emulateJSON:true}).then(result =>{
        console.log(result.data);
      });
    }
没有写参数时
写了参数后
再来学习JSONP:

跟get有点类似

   jsonpInfo(){
      //回调函数是匿名函数,箭头函数也是匿名函数
      this.$http.jsonp("url").then(result =>{
        console.log(result.data);
      });
    }
结合Node手写JSONP服务器剖析JSONP原理

没学过node,反正现在也不用vue-resource了用axios了,额,这儿就先不学习。

上一篇下一篇

猜你喜欢

热点阅读