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 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
Nov 01 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
jQuery简单绑定单个事件的方法示例
Jun 10 jQuery
js CSS3实现卡牌旋转切换效果
Jul 04 Javascript
JavaScript禁用右键单击优缺点分析
Jan 20 Javascript
vue component 中引入less文件报错 Module build failed
Apr 17 Javascript
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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP实现小偷程序实例
2016/10/31 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
JavaScript中的prototype使用说明
2010/04/13 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
Android面试宝典
2013/08/06 面试题
119消防日活动总结
2014/08/29 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
设备收款委托书范本
2014/10/02 职场文书
民事和解协议书格式
2014/11/29 职场文书
2015教师年度考核评语
2015/03/25 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
oracle索引总结
2021/09/25 Oracle
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android
Mysql 一主多从的部署
2022/05/20 MySQL