jQuery学习笔记之 Ajax操作篇(二) - 数据传递


Posted in Javascript onJune 23, 2014

请求数据

我们可以使用 GET、POST 两种方式向后端请求数据,这里以 PHP 为例,假设有测试页面 age.php,用于返回年龄信息,内容为:

if(isset($_REQUEST['name']) && $_REQUEST['name'] == 'stephen') {
  echo '23';
}

当前页面内容为:

<div>
 <a href="age.php">stephen</a>
 <span>age : </span>
 <span id="sex"></span>
</div>

jQuery学习笔记之 Ajax操作篇(二) - 数据传递

我们希望点击 a 标签后,在不刷新页面的前提下获取年龄信息。首先用 GET 方式请求数据:

GET 方式

$('a').click(function(e) {
  e.preventDefault();//
  var url = $(this).attr('href'),
   name = $(this).text(),
   requestData = {'name': name};

  $.get(url, requestData, function(data) {
   $('#sex').html(data);
  });
 });

点击 a 标签后,当前页面为:

jQuery学习笔记之 Ajax操作篇(二) - 数据传递

数据请求成功。我们再用 POST 方式测试下:

POST 方式

$('a').click(function(e) {
  e.preventDefault();//
  var url = $(this).attr('href'),
   name = $(this).text(),
   requestData = {'name': name};

  $.post(url, requestData, function(data) {
   $('#sex').html(data);
  });
 });

代码几乎一样,只是由 get 方法变为了 post 方法。
这里我们其实还可以用 load 方法简化代码:

$('a').click(function(e) {
  e.preventDefault();
  var url = $(this).attr('href'),
   name = $(this).text(),
   requestData = {'name': name};

  $('#sex').load(url, requestData);
 });

发送数据

除了可以使用 Ajax 技术从后端获取数据,还可以向后端发送数据,常见的就是异步提交表单的情景,这里以用户验证为例:

<form action="validate.php">
 username:<input id="username" name="username" type="text" />
 password:<input id="password" name="password" type="text" />
 <input value="submit" type="submit" />
</form>

jQuery学习笔记之 Ajax操作篇(二) - 数据传递

假设当用户名为 stephenlee,密码为 123456 时验证通过,否则失败,测试页面 validate.php 为:

if($_REQUEST['username'] == 'stephenlee' && $_REQUEST['password'] == '123456') {
  echo 'pass';
} else {
  echo 'fail';
}

使用 get 方式发送数据到后端验证:

$('form').submit(function(e) {
  e.preventDefault();//
  var url = $(this).attr('action'), 
   username = $('input[name="username"]').val(),
   password = $('input[name="password"]').val(),
   requestData = {'username': username, 'password': password};

  $.get(url, requestData, function(result) {
   alert(result);
  });
 });

输入错误用户名 lucas 后,结果为:

jQuery学习笔记之 Ajax操作篇(二) - 数据传递

输入正确用户名 stephenlee 后,结果为:

 jQuery学习笔记之 Ajax操作篇(二) - 数据传递

使用 post 方式发送数据思路相同,就不再赘述了。

Javascript 相关文章推荐
国外大牛IE版本检测!现在IE都到9了,IE检测代码
Jan 04 Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
js jquery获取随机生成id的服务器控件的三种方法
Jul 11 Javascript
javascript静态页面传值的三种方法分享
Nov 12 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
微信小程序之onLaunch与onload异步问题详解
Mar 28 Javascript
利用Vue实现一个markdown编辑器实例代码
May 19 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 10 jQuery
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
Jun 23 #Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 #Javascript
yepnope.js使用详解及示例分享
Jun 23 #Javascript
js的延迟执行问题分析
Jun 23 #Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 #Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 #Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 #Javascript
You might like
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
Js sort排序使用方法
2011/10/17 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
python中xlutils库用法浅析
2020/12/29 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
个人年度总结报告
2015/03/09 职场文书
放假通知
2015/04/14 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript