首頁 > web前端 > Vue.js > vuejs怎麼請求後台接口

vuejs怎麼請求後台接口

藏色散人
發布: 2021-11-02 14:51:37
原創
10297 人瀏覽過

vuejs請求後台介面的方法:1、安裝axios並引入;2、使用get或post請求;3、安裝vue-resource並引入;4、使用vue-resource發送跨域請求。

vuejs怎麼請求後台接口

本文操作環境:windows7系統、vue2.9.6版,DELL G3電腦。

vuejs怎麼請求後台介面?

vue請求後台介面 方法:

ue不支援直接傳送AJAX請求,需要使用vue-resource、axios等外掛程式實作。

一.使用axios發送AJAX請求:

1.安裝axios並引入:

1)npm install axios -S (直接下載axios元件,下載後axios .js就存放在node_modules\axios\dist中),首先在main.js 中引入axios:在此檔案加入import axios from 'axios',如果在其它的元件中無法使用axios 指令。可以將 axios 改寫為 Vue 的原型屬性:Vue.prototype.$http=axios,在 main.js 中加入了這兩行程式碼之後,就能直接在元件的 methods 中使用 this.$http指令。

 2)網路上直接下載axios.min.js檔案,透過script src的方式進行檔案的引入

2.傳送請求:

1)get請求使用格式:

a:axios([options]) (這種格式直接將所有資料寫在options裡,options其實是個字典)

b:axios.get(url[,options] );

<script>     
    new Vue({
             el:&#39;#itany&#39;,
             data:{
                user:{
                     name:&#39;alice&#39;,
                     age:19
                    },
                },
                methods:{
                    send(){
                        axios({//格式a
                            method:&#39;get&#39;,
                            url:&#39;http://www.baidu.com?name=tom&age=23&#39;
                        }).then(function(resp){
                            console.log(resp.data);
                        }).catch(resp => {
                            console.log(&#39;请求失败:&#39;+resp.status+&#39;,&#39;+resp.statusText);
                        });
                    },
                    sendGet(){//格式b
                        axios.get(&#39;server.php&#39;,{
                            params:{
                                name:&#39;alice&#39;,
                                age:19
                            }
                        })
                        .then(resp => {
                            console.log(resp.data);
                        }).catch(err => {             //
                            console.log(&#39;请求失败:&#39;+err.status+&#39;,&#39;+err.statusText);
                        });
                    },
                }
            });
    </script>
登入後複製

2)post請求格式:

a:axios.post(url,data,[options]);

new Vue({
                el:&#39;#itany&#39;,
                data:{
                    user:{
                        name:&#39;alice&#39;,
                        age:19
                    },
                },
                methods:{
                    sendPost(){
                        // axios.post(&#39;server.php&#39;,{
                        //         name:&#39;alice&#39;,
                        //         age:19
                        // }) //该方式发送数据是一个Request Payload的数据格式,一般的数据格式是Form Data格式,所有发送不出去数据
                        // axios.post(&#39;server.php&#39;,&#39;name=alice&age=20&&#39;) //方式1通过字符串的方式发送数据
                        axios.post(&#39;server.php&#39;,this.user,{  //方式2通过transformRequest方法发送数据,本质还是将数据拼接成字符串
                            transformRequest:[
                                function(data){
                                    let params=&#39;&#39;;
                                    for(let index in data){
                                        params+=index+&#39;=&#39;+data[index]+&#39;&&#39;;
                                    }
                                    return params;
                                }
                            ]
                        })
                        .then(resp => {
                            console.log(resp.data);
                        }).catch(err => {
                            console.log(&#39;请求失败:&#39;+err.status+&#39;,&#39;+err.statusText);
                        });
                    },
                }
            });
登入後複製

3)傳送跨網域請求:

a:須知:axios本身不支援發送跨網域的請求,沒有提供對應的API,作者也暫沒計畫在axios新增支援發送跨網域請求,所以只能使用第三方函式庫

b:使用vue-resource傳送跨網域請求

c: 安裝vue-resource並引入    

   npm info vue-resource           #查看vue-resource 版本信息
      cnpm install vue-resource -S #等同于cnpm install vue-resource -save
登入後複製

d: 基本使用方法(使用this.$http傳送請求) 

   this.$http.get(url, [options])
    this.$http.head(url, [options])
    this.$http.delete(url, [options])
    this.$http.jsonp(url, [options])
    this.$http.post(url, [body], [options])
    this.$http.put(url, [body], [options])
    this.$http.patch(url, [body], [options])
登入後複製

二.vue-resource發送請求:

1.安裝引入vue-resource方式:

1)npm install axios -S (直接下載axios元件,下載完畢後axios.js就存放在node_modules\axios\dist中),透過改路由的index.js引入:在index.js加入import VueResource from 'vue-resource'和Vue.use(VueResource)即可

2)網路上直接下載axios.min.js文件,透過script src的方式進行文件的引入

2.post請求方式:

1)  this.$http({ method:&#39;POST&#39;,  
                        url:&#39;/a/b&#39;, //接口路径 data:{&#39;a&#39;:&#39;123124&#39;}, //参数 
                        headers: {"X-Requested-With": "XMLHttpRequest"}, 
                        }).then((res) => { if(res.body.code == "0") {
                        this.data= res.body.result;
                    } else {
                        this.warnMessage = "获取班级失败";
                        this.colorMessage = "red"
                    }
                }).catch(err => {
                    this.warnMessage = "访问接口失败";
                    this.colorMessage = "red"
                })
2)this.$http.post(&#39;../a/b/c&#39;, {}, {
                    header: {},
                    emulateJSON: true
                }).then((res) => {
                    if(res.body.code == "0") {
                        this.data= res.body.result;
                    } else {
                        this.warnMessage = "获取班级失败";
                        this.colorMessage = "red"
                    }
                }).catch(err => {
                    this.warnMessage = "访问接口失败";
                    this.colorMessage = "red"
                })
登入後複製

2.get請求方式同post,直接將上面的post改為get即可

推薦:《最新的5個vue.js影片教學精選

以上是vuejs怎麼請求後台接口的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板