get,post,jsonp数据交互—百度下拉列表
三种数据交互形式:get post jsonp
一、get请求
1.引入 vue.js 和 vue-resource.js , 准备一个按钮
<input type="button" value="按钮" @click="get()"/> //点击按钮请求数据函数get()
2.准备一个txt文件
welcome vue
3.编写js代码
<script>
window.onload=function(){
new Vue({
el:'body', //主体为body,有套div时,此处为选择器
methods:{
get:function(){
this.$http.get('a.txt').then(function(res){
alert(res.data) //成功后,弹出请求数据
},function(res){
alert(res.status) //失败后,弹出请求状态码
})
}
}
})
}
</script>
二、post请求
1.引入 vue.js 和 vue-resource.js , 准备一个按钮
<input type="button" value="按钮" @click="get()"/>
2.准备一个php文件
<?php
$a=$_POST['a'];
$b=$_POST['b'];
echo $a-$b; //回显数据相减结果
?>
3.编写js代码
<script>
window.onload=function(){
new Vue({
el:'body',
methods:{
get:function(){
this.$http.post('post.php',{ //发送实参数据,进行运算(需要放在服务器环境)
a:1,
b:2
},{
emulateJSON:true //post的标识
}).then(function(res){
alert(res.data) //成功后弹出数据结果
},function(res){
alert(res.status) //失败后弹出状态码
})
}
}
})
}
</script>
三、jsonp——百度下拉列表实例
1.引入 vue.js 和 vue-resource.js , 准备基础样式代码
<style>
.gray{
background: #ccc; //按上下键时显示的文字背景颜色
}
</style> <div id="box">
<input type="text" v-model="t1" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up.prevent="changeUp()"/>
//按键传键值 get($event) 函数 //按向下键时 changeDown() 函数 //按向上键时 changeUp() 函数:阻止默认行为输入浮上移
<ul>
<li v-for="value in myData" :class="{gray:$index==now}">{{value}}</li>
//循环myData数据 绑定样式同时添加条件,下标值此时为几时,背景为灰
</ul>
<p v-show="myData.length==0">暂无数据...</p> //当数据长度为0时,显示暂无数据...
</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不请求数据
if(ev.keyCode==13){ //如果事件为回车
window.open('https://www.baidu.com/s?wd='+this.t1); //则打开百度对应t1值页面
this.t1=''; //清空输入框
}
this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
wd:this.t1 //截取的搜索接口,发送数据为输入框此时输入的数据
},{
jsonp:'cb' //callback名字,默认为'callback'
}).then(function(res){
this.myData=res.data.s //将数据的s值赋给 myData
},function(res){
alert(res.status)
})
},
changeDown:function(){ //按下键时的函数
this.now++; //now下标值++
if(this.now==this.myData.length)this.now=-1; //如果下标值为数据长度,即最后一个时,为-1,跳到第一个
this.t1=this.myData[this.now] //输入框值为此时数据中选中的值
},
changeUp:function(){ //按上键时的函数
this.now--; //now下标值--
if(this.now==-2)this.now=this.myData.length-1 //如果下标值为-2,此时now=总长度-1,跳到最后一个
this.t1=this.myData[this.now] //输入框值为此时数据中选中的值
}
}
})
}
</script>
3、类似百度搜索了。。。
get,post,jsonp数据交互—百度下拉列表的更多相关文章
- vue教程1-09 交互 vue实现百度下拉列表
vue教程1-09 交互 vue实现百度下拉列表 <!DOCTYPE html> <html lang="en"> <head> <met ...
- JSONP -- 跨域数据交互协议
一.概念 ①传统Ajax:交互的数据格式——自定义字符串或XML描述: 跨域——通过服务器端代理解决. ②如今最优方案:使用JSON格式来传输数据,使用JSONP来跨域. ③JSON:一种数据交换格式 ...
- HTML和JSON的数据交互-jsonp跨域
HTML和json的数据交互 <!DOCTYPE html> <html> <head> <script src="//ajax.googleapi ...
- 分布式环境中,模块数据交互协议分析 (百度brpc)
1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什 ...
- Django学习笔记(8)——前后台数据交互实战(AJAX)
这里将自己这段时间学习的关于前后台数据交互的笔记写在这里,这里包含了Django传输数据给JS,AJAX的相关问题,跨域问题,如何解决AJAX的跨域问题等等.比较凌乱,请看到这篇博客的盆友见谅,如果我 ...
- ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递
前言 最近公司项目进行架构调整,由原来的三层架构改进升级到微服务架构(准确的说是服务化,还没完全做到微的程度,颗粒度没那么细),遵循RESTFull规范,使前后端完全分离,实现大前端思想.由于是初次尝 ...
- vue中的数据监听以及数据交互
现在我们来看一下vue中的数据监听事件$watch, js代码: new Vue({ el:"#div", data:{ arr:[,,] } }).$watch("ar ...
- ASP.Net中关于WebAPI与Ajax进行跨域数据交互时Cookies数据的传递
本文主要介绍了ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据传递的相关知识.具有很好的参考价值.下面跟着小编一起来看下吧 前言 最近公司项目进行架构调整,由原来的三层架构改 ...
- .net实现与excel的数据交互、导入导出
应该说,一套成熟的基于web的管理系统,与用户做好的excel表格进行数据交互是一个不可或缺的功能,毕竟,一切以方便客(jin)户(qian)为宗旨. 本人之前从事PHP的开发工作,熟悉PHP的都应该 ...
随机推荐
- Angular--ui-router的使用
先引用Angular然后引用ui-router 路由清单:我们依赖的ui.router中提供了一个服务$state,此时可以用config来配置这个服务.用$stateProvider的state方法 ...
- php中curl的使用(一)
cURL 是一个利用URL语法规定来传输文件和数据的工具,PHP的curl是通过libcurl库与服务器使用各种类型的协议,如HTTP.FTP.TELNET等. PHP curl函数 curl_clo ...
- Spring Security4实例(Java config版)——ajax登录,自定义验证
本文源码请看这里 相关文章: Spring Security4实例(Java config 版) -- Remember-Me 首先添加起步依赖(如果不是springboot项目,自行切换为Sprin ...
- python机器学习模块安装
环境:RHEL6.5 离线安装 ############################################################################ 一,本地yum ...
- 解决React Native unable to load script from assets index.android.bundle on windows
React Native运行的时候,经常碰到React Native unable to load script from assets index.android.bundle on windows ...
- Openfire3.9.1+jdk1.7导入到eclipse中
Openfire3.9.1+jdk1.7导入到eclipse中 写这篇文章,也是记录一下自己几晚上的辛苦,因为作为新手在网上看了很多的资料,但是按照他们的我总是出不来,跟他们描述的不一致,可能是环境问 ...
- (转)java并发之Executor
场景: 线程池在面试时候经常会碰到,在工作中用的场景更多,所以很有必要弄清楚. 1 简介 Java自1.5以来加入了处理一批线程的方法,也就是java并发包里的Executor.本文主要介绍Execu ...
- AngularJS $compile动态生成html
angular.module('app') .directive('compile', function ($compile) { return function (scope, element, a ...
- 微信小程序开发基础知识总结
微信小程序在无论在功能.文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们的小程序在很多方面突破H5页面应用的限制,更加接近原生程序的功能,因此微信小程序具有很 ...
- JavaWeb学习归档(一) - HTTP协议总结
版权声明:本文为博主原创文章,未经博主允许不得转载. 本文转载自我的个人博客:http://www.codingme.net/post/java-web-01 HTTP协议简介 超文本传输协议(HTT ...