溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

get  post jsonp三種數(shù)據(jù)交互形式實(shí)例詳解

發(fā)布時(shí)間:2020-08-24 12:52:25 來源:腳本之家 閱讀:154 作者:超級瑪貝 欄目:web開發(fā)

一、get請求

1.引入 vue.js 和 vue-resource.js , 準(zhǔn)備一個(gè)按鈕

<input type="button" value="按鈕" @click="get()"/>  //點(diǎn)擊按鈕請求數(shù)據(jù)函數(shù)get()

2.準(zhǔn)備一個(gè)txt文件

welcome vue

3.編寫js代碼

<script>
 window.onload=function(){
  new Vue({
  el:'body',      //主體為body,有套div時(shí),此處為選擇器
  methods:{
   get:function(){
   this.$http.get('a.txt').then(function(res){
    alert(res.data)       //成功后,彈出請求數(shù)據(jù)
   },function(res){         
    alert(res.status)      //失敗后,彈出請求狀態(tài)碼
   })
   }
  }
  })
 }
 </script>

二、post請求

1.引入 vue.js 和 vue-resource.js , 準(zhǔn)備一個(gè)按鈕

<input type="button" value="按鈕" @click="get()"/>

2.準(zhǔn)備一個(gè)php文件

<?php
 $a=$_POST['a'];
 $b=$_POST['b'];
 echo $a-$b;          //回顯數(shù)據(jù)相減結(jié)果
?>

3.編寫js代碼

<script>
 window.onload=function(){
  new Vue({
  el:'body',
  methods:{
   get:function(){
   this.$http.post('post.php',{  //發(fā)送實(shí)參數(shù)據(jù),進(jìn)行運(yùn)算(需要放在服務(wù)器環(huán)境)
    a:1,
    b:2
   },{
    emulateJSON:true    //post的標(biāo)識
   }).then(function(res){
    alert(res.data)          //成功后彈出數(shù)據(jù)結(jié)果
   },function(res){    
    alert(res.status)         //失敗后彈出狀態(tài)碼
   })
   }
  }
  })
 }
 </script>

三、jsonp——百度下拉列表實(shí)例

1.引入 vue.js 和 vue-resource.js , 準(zhǔn)備基礎(chǔ)樣式代碼

<style>
 .gray{
  background: #ccc;    //按上下鍵時(shí)顯示的文字背景顏色
 }
 </style>
<div id="box">
 <input type="text" v-model="t1" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up.prevent="changeUp()"/>
        //按鍵傳鍵值 get($event) 函數(shù) //按向下鍵時(shí) changeDown() 函數(shù) //按向上鍵時(shí) changeUp() 函數(shù):阻止默認(rèn)行為輸入浮上移
 <ul>
  <li v-for="value in myData" :class="{gray:$index==now}">{{value}}</li>
        //循環(huán)myData數(shù)據(jù) 綁定樣式同時(shí)添加條件,下標(biāo)值此時(shí)為幾時(shí),背景為灰
 </ul>
 <p v-show="myData.length==0">暫無數(shù)據(jù)...</p> //當(dāng)數(shù)據(jù)長度為0時(shí),顯示暫無數(shù)據(jù)...
 </div>

  2、編寫js代碼

 <script>
 window.onload=function(){
  new Vue({
  el:'#box',
  data:{
   myData:[],
   t1:'',
   now:-1
  },
  methods:{
   get:function(ev){               //接收事件
   if(ev.keyCode==38||ev.keyCode==40)return;          //如果事件為向上向下則return不請求數(shù)據(jù)
   if(ev.keyCode==13){                        //如果事件為回車
    window.open('https://www.baidu.com/s?wd='+this.t1); //則打開百度對應(yīng)t1值頁面
    this.t1='';                          //清空輸入框
   }
   this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
    wd:this.t1                           //截取的搜索接口,發(fā)送數(shù)據(jù)為輸入框此時(shí)輸入的數(shù)據(jù)
   },{
    jsonp:'cb'                          //callback名字,默認(rèn)為'callback'
   }).then(function(res){
    this.myData=res.data.s                    //將數(shù)據(jù)的s值賦給 myData
   },function(res){
    alert(res.status)
   })
   },
   changeDown:function(){                       //按下鍵時(shí)的函數(shù)
   this.now++;                            //now下標(biāo)值++
   if(this.now==this.myData.length)this.now=-1;        //如果下標(biāo)值為數(shù)據(jù)長度,即最后一個(gè)時(shí),為-1,跳到第一個(gè)
   this.t1=this.myData[this.now]                 //輸入框值為此時(shí)數(shù)據(jù)中選中的值
   },
   changeUp:function(){                        //按上鍵時(shí)的函數(shù)
   this.now--;                            //now下標(biāo)值--
   if(this.now==-2)this.now=this.myData.length-1       //如果下標(biāo)值為-2,此時(shí)now=總長度-1,跳到最后一個(gè)
   this.t1=this.myData[this.now]                 //輸入框值為此時(shí)數(shù)據(jù)中選中的值 
   }
  }
  })
 }
 </script>

  3、類似百度搜索了。。。

總結(jié)

以上所述是小編給大家介紹的三種數(shù)據(jù)交互形式get  post jsonp實(shí)例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI