Welcome 微信登录

首页 / 脚本样式 / JavaScript / jQuery学习笔记之 Ajax操作篇(二) - 数据传递

请求数据
我们可以使用 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>

我们希望点击 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 标签后,当前页面为:

数据请求成功。我们再用 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>

假设当用户名为 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 后,结果为:

输入正确用户名 stephenlee 后,结果为:
 
使用 post 方式发送数据思路相同,就不再赘述了。